import requests
import json

# --- Common Setup ---
url = "https://ceremewa.myhostpoint.ch/wp-admin/admin-ajax.php?action=yawave_update"
headers = {
    'accept': 'application/json',
    'Content-Type': 'application/json'
}

# --- Payload Definitions ---

# 1. webhook event: category updated (parent category)
payload_category_parent = {
  "event_type": "category:updated",
  "triggered": "2025-04-26T10:51:49.137990313Z",
  "content": {
    "id": "76dea617-468e-4b55-99ba-ff4d6417bca7",
    "parent_id": None, # JSON null becomes Python None
    "name": {
      "de": "DE Parent Cat",
      "en": "EN Parent Cat"
    },
    "slug": "de-parent-cat",
    "localized_slugs": {
      "de": "de-parent-cat",
      "en": "en-parent-cat"
    },
    "used_as_interest": True, # JSON true becomes Python True
    "icon": None,
    "languages": [
      "de",
      "en"
    ]
  }
}

# 2. webhook event: category updated (sub-category)
payload_category_sub = {
  "event_type": "category:updated",
  "triggered": "2025-04-26T10:51:55.522972951Z",
  "content": {
    "id": "644918a7-ea26-473d-bce3-5cf60edeb43f",
    "parent_id": "76dea617-468e-4b55-99ba-ff4d6417bca7",
    "name": {
      "de": "DE Child Cat",
      "en": "EN Child Cat"
    },
    "slug": "de-child-cat",
    "localized_slugs": {
      "de": "de-child-cat",
      "en": "en-child-cat"
    },
    "used_as_interest": True,
    "icon": None,
    "languages": [
      "de",
      "en"
    ]
  }
}

# 3. webhook event: tag updated
payload_tag_updated = {
  "event_type": "tag:updated",
  "triggered": "2025-04-26T10:59:48.725916095Z",
  "content": {
    "id": "a06cde86-a010-4d84-926b-e662f50cf625",
    "name": "musik",
    "slug": "musik"
  }
}

# 4. webhook event: publication updated
payload_publication_updated = {
  "event_type": "publication:updated",
  "triggered": "2025-04-26T09:27:29.495739365Z",
  "content": {
    "id": "9b9f1e8b-824d-427c-bf26-c90ef2bad7c9",
    "external_id": None,
    "slug": "multilanguage-publication",
    "localized_slugs": {
      "de": "multilanguage-publication-de",
      "en": "multilanguage-publication-en"
    },
    "status": "PUBLISHED",
    "type": "LANDING_PAGE",
    "languages": [
      "en",
      "de"
    ],
    "cover": {
      "title": {
        "en": "Cover Title EN",
        "de": "Cover Title DE"
      },
      "description": {
        "en": "Cover Description EN",
        "de": "Cover Description DE"
      },
      "image": {
        "en": {
          "path": "https://s3.eu-central-1.amazonaws.com/media.test.yawave/yawave_publication/landing_page/2025-04/70d27228-9cb5-4af9-819f-c28b146e3079.png",
          "focus": {
            "x": 0,
            "y": 0
          }
        },
        "de": {
          "path": "https://s3.eu-central-1.amazonaws.com/media.test.yawave/yawave_publication/landing_page/2025-04/e45b9ef5-eed6-444c-afcd-b4d6b3366add.png",
          "focus": {
            "x": 0,
            "y": 0
          }
        }
      },
      "title_image": {},
      "metadata_image": {
        "en": "https://api.test-yawave.com/core/s3?img=aHR0cHM6Ly9zMy5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbS9tZWRpYS50ZXN0Lnlhd2F2ZS95YXdhdmVfcHVibGljYXRpb24vbGFuZGluZ19wYWdlLzIwMjUtMDQvNzBkMjcyMjgtOWNiNS00YWY5LTgxOWYtYzI4YjE0NmUzMDc5LnBuZw==&style=600x314sc&focusX=0&focusY=0",
        "de": "https://api.test-yawave.com/core/s3?img=aHR0cHM6Ly9zMy5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbS9tZWRpYS50ZXN0Lnlhd2F2ZS95YXdhdmVfcHVibGljYXRpb24vbGFuZGluZ19wYWdlLzIwMjUtMDQvZTQ1YjllZjUtZWVkNi00NDRjLWFmY2QtYjRkNmIzMzY2YWRkLnBuZw==&style=600x314sc&focusX=0&focusY=0"
      }
    },
    "header": {
      "overlay_color": "#0094de",
      "opacity": 85,
      "content_alignment": "LEFT",
      "title": {
        "en": "Header Title EN",
        "de": "Header Title DE"
      },
      "description": {
        "en": "Header Description EN",
        "de": "Header Description DE"
      },
      "use_video": False, # JSON false becomes Python False
      "image": {
        "en": {
          "path": "https://s3.eu-central-1.amazonaws.com/media.test.yawave/yawave_publication/landing_page/2025-04/5d30e36d-8ae3-422b-90e4-830b8572f4a7.png",
          "focus": {
            "x": 0,
            "y": 0
          }
        },
        "de": {
          "path": "https://s3.eu-central-1.amazonaws.com/media.test.yawave/yawave_publication/landing_page/2025-04/af9bbf5f-4ecf-4181-ad19-9d9c4eb0d347.png",
          "focus": {
            "x": 0,
            "y": 0
          }
        }
      },
      "video_url": {},
      "embed_post": {},
      "initial_header_type": "FULL",
      "collapsing": True,
      "collapsed_header_type": "MINIMIZED"
    },
    "tools": [
      {
        "id": "e11b6ec4-2df1-4374-b425-6983f2192b4a",
        "type": "FORM",
        "label": {
          "en": "Form",
          "de": "Form"
        },
        "icon": {
          "source": "CUSTOM",
          "path": "https://s3.eu-central-1.amazonaws.com/media.test.yawave/icons8_v2/2022-03/430e801f-0dca-443a-88cf-5c43e303dad3.svg",
          "focus": None
        },
        "reference": None,
        "active_begin": None,
        "active_end": None,
        "show_conversions": False,
        "conversions_label": {},
        "primary": True
      }
    ],
    "main_category_id": "644918a7-ea26-473d-bce3-5cf60edeb43f",
    "category_ids": [],
    "tag_ids": [
      "a06cde86-a010-4d84-926b-e662f50cf625"
    ],
    "publication_type_id": "4bc53801-cb17-40eb-bd1f-120aadc81308",
    "visibility": [],
    "begin_date": "2025-04-26T09:23:32Z",
    "creation_date": "2025-04-26T09:23:34.561Z",
    "content": {
      "html": {
        "en": "<head>\n\t<title></title>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width\">\n\t<style>\n\t\t.bee-row,\n\t\t.bee-row-content {\n\t\t\tposition: relative\n\t\t}\n\n\t\t.bee-row-1,\n\t\t.bee-row-1 .bee-row-content {\n\t\t\tbackground-repeat: no-repeat\n\t\t}\n\n\t\tbody {\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: #000000;\n\t\t\tfont-family: \"Proxima Nova Regular\", Arial, Helvetica, sans-serif\n\t\t}\n\n\t\t* {\n\t\t\tbox-sizing: border-box\n\t\t}\n\n\t\tbody,\n\t\th1 {\n\t\t\tmargin: 0\n\t\t}\n\n\t\t.bee-row-content {\n\t\t\tmax-width: 1440px;\n\t\t\tmargin: 0 auto;\n\t\t\tdisplay: flex\n\t\t}\n\n\t\t.bee-row-content .bee-col-w12 {\n\t\t\tflex-basis: 100%\n\t\t}\n\n\t\t@media (max-width:768px) {\n\t\t\t.bee-row-content:not(.no_stack) {\n\t\t\t\tdisplay: block\n\t\t\t}\n\t\t}\n\n\t\t.bee-row-1 .bee-row-content {\n\t\t\tcolor: #000000\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 {\n\t\t\tpadding-bottom: 5px;\n\t\t\tpadding-top: 5px\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 .bee-block-1 {\n\t\t\ttext-align: center;\n\t\t\twidth: 100%\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 .bee-block-1 h1 {\n\t\t\tcolor: #555555;\n\t\t\tdirection: ltr;\n\t\t\tfont-family: \"Proxima Nova Regular\", Arial, Helvetica, sans-serif;\n\t\t\tfont-size: 23px;\n\t\t\tfont-weight: 700;\n\t\t\tletter-spacing: normal;\n\t\t\tline-height: 120%;\n\t\t\ttext-align: center\n\t\t}\n\t</style>\n</head>\n\n<body>\n\t<div class=\"bee-page-container\">\n\t\t<div class=\"bee-row bee-row-1\">\n\t\t\t<div class=\"bee-row-content\">\n\t\t\t\t<div class=\"bee-col bee-col-1 bee-col-w12\">\n\t\t\t\t\t<div class=\"bee-block bee-block-1 bee-heading\">\n\t\t\t\t\t\t<h1><span class=\"tinyMce-placeholder\">Content EN</span> </h1>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\n</body>",
        "de": "<head>\n\t<title></title>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width\">\n\t<style>\n\t\t.bee-row,\n\t\t.bee-row-content {\n\t\t\tposition: relative\n\t\t}\n\n\t\t.bee-row-1,\n\t\t.bee-row-1 .bee-row-content {\n\t\t\tbackground-repeat: no-repeat\n\t\t}\n\n\t\tbody {\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: #000000;\n\t\t\tfont-family: \"Proxima Nova Regular\", Arial, Helvetica, sans-serif\n\t\t}\n\n\t\t* {\n\t\t\tbox-sizing: border-box\n\t\t}\n\n\t\tbody,\n\t\th1 {\n\t\t\tmargin: 0\n\t\t}\n\n\t\t.bee-row-content {\n\t\t\tmax-width: 1440px;\n\t\t\tmargin: 0 auto;\n\t\t\tdisplay: flex\n\t\t}\n\n\t\t.bee-row-content .bee-col-w12 {\n\t\t\tflex-basis: 100%\n\t\t}\n\n\t\t@media (max-width:768px) {\n\t\t\t.bee-row-content:not(.no_stack) {\n\t\t\t\tdisplay: block\n\t\t\t}\n\t\t}\n\n\t\t.bee-row-1 .bee-row-content {\n\t\t\tcolor: #000000\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 {\n\t\t\tpadding-bottom: 5px;\n\t\t\tpadding-top: 5px\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 .bee-block-1 {\n\t\t\ttext-align: center;\n\t\t\twidth: 100%\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 .bee-block-1 h1 {\n\t\t\tcolor: #555555;\n\t\t\tdirection: ltr;\n\t\t\tfont-family: \"Proxima Nova Regular\", Arial, Helvetica, sans-serif;\n\t\t\tfont-size: 23px;\n\t\t\tfont-weight: 700;\n\t\t\tletter-spacing: normal;\n\t\t\tline-height: 120%;\n\t\t\ttext-align: center\n\t\t}\n\t</style>\n</head>\n\n<body>\n\t<div class=\"bee-page-container\">\n\t\t<div class=\"bee-row bee-row-1\">\n\t\t\t<div class=\"bee-row-content\">\n\t\t\t\t<div class=\"bee-col bee-col-1 bee-col-w12\">\n\t\t\t\t\t<div class=\"bee-block bee-block-1 bee-heading\">\n\t\t\t\t\t\t<h1><span class=\"tinyMce-placeholder\">Content DE</span> </h1>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\n</body>"
      },
      "html_tailored": {
        "en": "<div class=\"bee-page-container\">\n <div class=\"bee-row bee-row-1\">\n  <div class=\"bee-row-content\">\n   <div class=\"bee-col bee-col-1 bee-col-w12\">\n    <div class=\"bee-block bee-block-1 bee-heading\">\n     <h1><span class=\"tinyMce-placeholder\">Content EN</span></h1>\n    </div>\n   </div>\n  </div>\n </div>\n</div>",
        "de": "<div class=\"bee-page-container\">\n <div class=\"bee-row bee-row-1\">\n  <div class=\"bee-row-content\">\n   <div class=\"bee-col bee-col-1 bee-col-w12\">\n    <div class=\"bee-block bee-block-1 bee-heading\">\n     <h1><span class=\"tinyMce-placeholder\">Content DE</span></h1>\n    </div>\n   </div>\n  </div>\n </div>\n</div>"
      },
      "styles": {
        "en": "\n\t\t.bee-row,\n\t\t.bee-row-content {\n\t\t\tposition: relative\n\t\t}\n\n\t\t.bee-row-1,\n\t\t.bee-row-1 .bee-row-content {\n\t\t\tbackground-repeat: no-repeat\n\t\t}\n\n\t\tbody {\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: #000000;\n\t\t\tfont-family: \"Proxima Nova Regular\", Arial, Helvetica, sans-serif\n\t\t}\n\n\t\t* {\n\t\t\tbox-sizing: border-box\n\t\t}\n\n\t\tbody,\n\t\th1 {\n\t\t\tmargin: 0\n\t\t}\n\n\t\t.bee-row-content {\n\t\t\tmax-width: 1440px;\n\t\t\tmargin: 0 auto;\n\t\t\tdisplay: flex\n\t\t}\n\n\t\t.bee-row-content .bee-col-w12 {\n\t\t\tflex-basis: 100%\n\t\t}\n\n\t\t@media (max-width:768px) {\n\t\t\t.bee-row-content:not(.no_stack) {\n\t\t\t\tdisplay: block\n\t\t\t}\n\t\t}\n\n\t\t.bee-row-1 .bee-row-content {\n\t\t\tcolor: #000000\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 {\n\t\t\tpadding-bottom: 5px;\n\t\t\tpadding-top: 5px\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 .bee-block-1 {\n\t\t\ttext-align: center;\n\t\t\twidth: 100%\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 .bee-block-1 h1 {\n\t\t\tcolor: #555555;\n\t\t\tdirection: ltr;\n\t\t\tfont-family: \"Proxima Nova Regular\", Arial, Helvetica, sans-serif;\n\t\t\tfont-size: 23px;\n\t\t\tfont-weight: 700;\n\t\t\tletter-spacing: normal;\n\t\t\tline-height: 120%;\n\t\t\ttext-align: center\n\t\t}\n\t",
        "de": "\n\t\t.bee-row,\n\t\t.bee-row-content {\n\t\t\tposition: relative\n\t\t}\n\n\t\t.bee-row-1,\n\t\t.bee-row-1 .bee-row-content {\n\t\t\tbackground-repeat: no-repeat\n\t\t}\n\n\t\tbody {\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: #000000;\n\t\t\tfont-family: \"Proxima Nova Regular\", Arial, Helvetica, sans-serif\n\t\t}\n\n\t\t* {\n\t\t\tbox-sizing: border-box\n\t\t}\n\n\t\tbody,\n\t\th1 {\n\t\t\tmargin: 0\n\t\t}\n\n\t\t.bee-row-content {\n\t\t\tmax-width: 1440px;\n\t\t\tmargin: 0 auto;\n\t\t\tdisplay: flex\n\t\t}\n\n\t\t.bee-row-content .bee-col-w12 {\n\t\t\tflex-basis: 100%\n\t\t}\n\n\t\t@media (max-width:768px) {\n\t\t\t.bee-row-content:not(.no_stack) {\n\t\t\t\tdisplay: block\n\t\t\t}\n\t\t}\n\n\t\t.bee-row-1 .bee-row-content {\n\t\t\tcolor: #000000\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 {\n\t\t\tpadding-bottom: 5px;\n\t\t\tpadding-top: 5px\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 .bee-block-1 {\n\t\t\ttext-align: center;\n\t\t\twidth: 100%\n\t\t}\n\n\t\t.bee-row-1 .bee-col-1 .bee-block-1 h1 {\n\t\t\tcolor: #555555;\n\t\t\tdirection: ltr;\n\t\t\tfont-family: \"Proxima Nova Regular\", Arial, Helvetica, sans-serif;\n\t\t\tfont-size: 23px;\n\t\t\tfont-weight: 700;\n\t\t\tletter-spacing: normal;\n\t\t\tline-height: 120%;\n\t\t\ttext-align: center\n\t\t}\n\t"
      },
      "styles_tailored": {
        "en": ".bee-row,\n.bee-row-content { position:relative; }\n\n.bee-row-1,\n.bee-row-1 .bee-row-content { background-repeat:no-repeat; }\n\nbody {}\n\n* { box-sizing:border-box; }\n\nbody,\nh1 {}\n\n.bee-row-content {\n  max-width:1440px;\n  margin:0 auto;\n  display:flex;\n}\n\n.bee-row-content .bee-col-w12 { flex-basis:100%; }\n\n@media (max-width:768px) {\n  .bee-row-content:not(.no_stack) { display:block; }\n}\n\n.bee-row-1 .bee-row-content { color:#000000; }\n\n.bee-row-1 .bee-col-1 {\n  padding-bottom:5px;\n  padding-top:5px;\n}\n\n.bee-row-1 .bee-col-1 .bee-block-1 {\n  text-align:center;\n  width:100%;\n}\n\n.bee-row-1 .bee-col-1 .bee-block-1 h1 {\n  color:#555555;\n  direction:ltr;\n  font-family:\"Proxima Nova Regular\",Arial,Helvetica,sans-serif;\n  font-size:23px;\n  font-weight:700;\n  letter-spacing:normal;\n  line-height:120%;\n  text-align:center;\n}\n",
        "de": ".bee-row,\n.bee-row-content { position:relative; }\n\n.bee-row-1,\n.bee-row-1 .bee-row-content { background-repeat:no-repeat; }\n\nbody {}\n\n* { box-sizing:border-box; }\n\nbody,\nh1 {}\n\n.bee-row-content {\n  max-width:1440px;\n  margin:0 auto;\n  display:flex;\n}\n\n.bee-row-content .bee-col-w12 { flex-basis:100%; }\n\n@media (max-width:768px) {\n  .bee-row-content:not(.no_stack) { display:block; }\n}\n\n.bee-row-1 .bee-row-content { color:#000000; }\n\n.bee-row-1 .bee-col-1 {\n  padding-bottom:5px;\n  padding-top:5px;\n}\n\n.bee-row-1 .bee-col-1 .bee-block-1 {\n  text-align:center;\n  width:100%;\n}\n\n.bee-row-1 .bee-col-1 .bee-block-1 h1 {\n  color:#555555;\n  direction:ltr;\n  font-family:\"Proxima Nova Regular\",Arial,Helvetica,sans-serif;\n  font-size:23px;\n  font-weight:700;\n  letter-spacing:normal;\n  line-height:120%;\n  text-align:center;\n}\n"
      }
    },
    "author": {
      "first_name": "Jari",
      "last_name": "Honka"
    },
    "portals": [
      {
        "id": "cb97b8c5-0bf6-4274-aefa-eafa973d57a6",
        "publication_weight": 32
      },
      {
        "id": "294ec100-0ec8-4a40-aa9a-9286037eef1d",
        "publication_weight": 31
      }
    ]
  }
}

# 5. webhook event: live blog updated
payload_liveblog_updated = {
  "event_type": "liveblog:updated",
  "triggered": "2025-04-26T12:34:48.184863931Z",
  "content": {
    "id": "e6d341d2-740e-4da5-9fb0-761324114967",
    "title": "HC Davos vs ZSC Lions",
    "description": "HC Davos vs ZSC Lions",
    "image": {
      "path": "https://s3.eu-central-1.amazonaws.com/media.test.yawave/liveblog/2023-11/a5101f62-c4e7-48b6-8f80-e84c0a534282.png",
      "focus": {
        "x": 0,
        "y": 0
      }
    },
    "category_ids": [],
    "tag_ids": [],
    "type": "HOCKEY",
    "status": "UPCOMING",
    "location": "Davos, Switzerland",
    "start_date": "2025-04-27T12:33:51Z",
    "home_competitor": {
      "name": "HC Davos",
      "image": {
        "path": "https://s3.eu-central-1.amazonaws.com/media.test.yawave/liveblog/2023-11/29fa5091-07dd-4e31-979e-0ed2871a05f5.png",
        "focus": {
          "x": 0,
          "y": 0
        }
      }
    },
    "away_competitor": {
      "name": "ZSC Lions",
      "image": {
        "path": "https://s3.eu-central-1.amazonaws.com/media.test.yawave/liveblog/2023-11/eb128ba6-1c4d-4194-8e83-e0e5c7da7374.png",
        "focus": {
          "x": 0,
          "y": 0
        }
      }
    },
    "sources": []
  }
}

# 6. webhook event: live blog post updated (Foul)
payload_liveblogpost_updated_foul = {
  "event_type": "liveblogPost:updated",
  "triggered": "2025-04-26T12:42:15.07511639Z",
  "content": {
    "id": "00dbe324-70e5-4d9d-8223-142362ea05ab",
    "liveblog_id": "e6d341d2-740e-4da5-9fb0-761324114967",
    "source": "SIHF",
    "period": "SECOND",
    "minute": 25,
    "second": 8,
    "stoppage_time": None,
    "timestamp": None,
    "display_format": None,
    "title": "ZSC Lions",
    "text": "<p>2 min / Halten</p>",
    "url": None,
    "publication_id": None,
    "embed_code": None,
    "pinned": False,
    "creation_date": "2023-09-02T13:40:08Z",
    "timeline_timestamp": "2023-11-19T15:03:45Z",
    "external_id": "foul-101139-1",
    "type": "FOUL",
    "action_id": None,
    "person_id": None,
    "action": None,
    "person": None,
    "match_clock": "25:08",
    "competitor": {
      "external_id": "101139",
      "name": None
    },
    "players": [
      {
        "external_id": "144044",
        "name": "Dean Kukan",
        "type": None
      }
    ]
  }
}

# 7. webhook event: live blog post updated (Score Change)
payload_liveblogpost_updated_score = {
  "event_type": "liveblogPost:updated",
  "triggered": "2025-04-26T12:36:38.901824254Z",
  "content": {
    "id": "7d89aedc-6cbe-4eab-8a2d-c755fcd34241",
    "liveblog_id": "e6d341d2-740e-4da5-9fb0-761324114967",
    "source": "SIHF",
    "period": "THIRD",
    "minute": 44,
    "second": 51,
    "stoppage_time": None,
    "timestamp": None,
    "display_format": None,
    "title": "HC Davos",
    "text": None,
    "url": None,
    "publication_id": None,
    "embed_code": None,
    "pinned": False,
    "creation_date": "2023-09-02T14:14:51Z",
    "timeline_timestamp": "2023-11-19T16:13:15Z",
    "external_id": "goal-101151-3",
    "type": "SCORE_CHANGE",
    "action_id": None,
    "person_id": None,
    "action": None,
    "person": None,
    "match_clock": "44:51",
    "competitor": {
      "external_id": "101151",
      "name": None
    },
    "players": [
      {
        "external_id": "316294",
        "name": "Rico Gredig",
        "type": "SCORER"
      },
      {
        "external_id": "152416",
        "name": "Sven Jung",
        "type": "ASSIST"
      }
    ],
    "home_score": 3,
    "away_score": 1,
    "score_change": True
  }
}

# --- Function to Send Webhook ---
def send_webhook(payload, description):
    """Sends a POST request with the given payload to the webhook URL."""
    print(f"--- Sending: {description} ---")
    try:
        # The 'json' parameter automatically serializes the dict to JSON
        # and sets the 'Content-Type' header to 'application/json'
        response = requests.post(url, headers=headers, json=payload)

        # Raise an exception for bad status codes (4xx or 5xx)
        response.raise_for_status()

        print(f"Status Code: {response.status_code}")
        # Attempt to print the response body if it's JSON, otherwise print text
        try:
            print("Response JSON:", response.json())
        except json.JSONDecodeError:
            print("Response Text:", response.text)

    except requests.exceptions.RequestException as e:
        print(f"Error sending webhook: {e}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")
    print("-" * (len(description) + 14) + "\n")


# --- Send the webhooks ---
# You can uncomment the ones you want to send

send_webhook(payload_category_parent, "Category Updated (Parent)")
send_webhook(payload_category_sub, "Category Updated (Sub-category)")
send_webhook(payload_tag_updated, "Tag Updated")
send_webhook(payload_publication_updated, "Publication Updated")
send_webhook(payload_liveblog_updated, "Live Blog Updated")
send_webhook(payload_liveblogpost_updated_foul, "Live Blog Post Updated (Foul)")
send_webhook(payload_liveblogpost_updated_score, "Live Blog Post Updated (Score Change)")

#print("Example usage: Uncomment the send_webhook calls to send the requests.")
# Example of sending just one:
#send_webhook(payload_category_parent, "Category Updated (Parent)")