# Generated by ariadne-codegen
# Source: graphql/queries.graphql

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel


class GetPage(BaseModel):
    get_page: Optional["GetPageGetPage"] = Field(alias="getPage")


class GetPageGetPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[List[Optional["GetPageGetPageContentModules"]]] = Field(
        alias="contentModules"
    )
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageCampaign"]


class GetPageGetPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[List[Optional["GetPageGetPageEventCircuits"]]]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageEventPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageEventCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageEventPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageEventPageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[Optional["GetPageGetPageEventPageContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageEventPageCampaign"]


class GetPageGetPageEventPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[List[Optional["GetPageGetPageEventPageEventCircuits"]]]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageEventPageEventPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageEventPageEventCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageEventPageEventPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageEventPageEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageEventPageEventPageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[Optional["GetPageGetPageEventPageEventPageContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageEventPageEventPageCampaign"]


class GetPageGetPageEventPageEventPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageEventPageEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageEventPageEventPageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageEventPageEventPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetPageGetPageEventPageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional["GetPageGetPageEventPageMinisiteFeatureImage"] = Field(
        alias="featureImage"
    )
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[Optional["GetPageGetPageEventPageMinisiteDefaultSponsors"]]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[List[Optional["GetPageGetPageEventPageMinisiteSponsors"]]]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageEventPageMinisiteLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageMinisiteFeatureImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageMinisiteDefaultSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo: Optional[
        "GetPageGetPageEventPageMinisiteDefaultSponsorsLightBgLogo"
    ] = Field(alias="lightBgLogo")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo: Optional[
        "GetPageGetPageEventPageMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageEventPageMinisiteDefaultSponsorsLightBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageMinisiteDefaultSponsorsDarkBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageMinisiteSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo: Optional[
        "GetPageGetPageEventPageMinisiteSponsorsLightBgLogo"
    ] = Field(alias="lightBgLogo")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo: Optional["GetPageGetPageEventPageMinisiteSponsorsDarkBgLogo"] = Field(
        alias="darkBgLogo"
    )
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageEventPageMinisiteSponsorsLightBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageMinisiteSponsorsDarkBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesRelatedArticles"]]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesRelatedEvents"]]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesRelatedCompetitors"]]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesRelatedDiscipline"]]
    ] = Field(alias="relatedDiscipline")
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    related_media: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesRelatedMedia"]]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesLifestyleLinks"]]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesFeatureLinks"]]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetPageGetPageEventPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional["GetPageGetPageEventPageContentModulesMinisite"]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesLocations"]]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[List[Optional["GetPageGetPageEventPageContentModulesVideos"]]]
    banners: Optional[List[Optional["GetPageGetPageEventPageContentModulesBanners"]]]
    slides: Optional[List[Optional["GetPageGetPageEventPageContentModulesSlides"]]]
    sections: Optional[List[Optional["GetPageGetPageEventPageContentModulesSections"]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    related_videos: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesRelatedVideos"]]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetPageGetPageEventPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetPageGetPageEventPageContentModulesRelatedArticles(BaseModel):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    related_media: Optional[
        List[
            Optional["GetPageGetPageEventPageContentModulesRelatedArticlesRelatedMedia"]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageEventPageContentModulesRelatedArticlesEvent"]
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetPageGetPageEventPageContentModulesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetPageGetPageEventPageContentModulesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[
            Optional[
                "GetPageGetPageEventPageContentModulesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetPageGetPageEventPageContentModulesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetPageGetPageEventPageContentModulesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetPageGetPageEventPageContentModulesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = Field(alias="relatedMinisitePages")
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    related_links: Optional[
        List[
            Optional["GetPageGetPageEventPageContentModulesRelatedArticlesRelatedLinks"]
        ]
    ] = Field(alias="relatedLinks")
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageEventPageContentModulesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageEventPageContentModulesRelatedArticlesRelatedMedia(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageContentModulesRelatedArticlesEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageEventPageContentModulesRelatedArticlesRelatedCompetitors(BaseModel):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageEventPageContentModulesRelatedArticlesRelatedDiscipline(BaseModel):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageEventPageContentModulesRelatedArticlesRelatedCompetitions(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    event_sub_category_code: Optional[str] = Field(alias="eventSubCategoryCode")
    description: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    order: Optional[int]
    category: Optional[int]
    about: Optional[str]
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    related_media_ids: Optional[List[Optional[str]]] = Field(alias="relatedMediaIds")
    logo_light_id: Optional[str] = Field(alias="logoLightId")
    logo_dark_id: Optional[str] = Field(alias="logoDarkId")
    style_overrides: Optional[str] = Field(alias="styleOverrides")
    related_info: Optional[List[Optional[str]]] = Field(alias="relatedInfo")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")


class GetPageGetPageEventPageContentModulesRelatedArticlesRelatedEvents(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageEventPageContentModulesRelatedArticlesRelatedArticles(BaseModel):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    event_id: Optional[int] = Field(alias="eventId")
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageEventPageContentModulesRelatedArticlesRelatedMinisitePages(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageEventPageContentModulesRelatedArticlesRelatedLinks(BaseModel):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetPageGetPageEventPageContentModulesRelatedArticlesContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    layout: Optional[int]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    slug: Optional[str]


class GetPageGetPageEventPageContentModulesRelatedEvents(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesRelatedEventsCircuits"]]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageEventPageContentModulesRelatedEventsPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageEventPageContentModulesRelatedEventsCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageEventPageContentModulesRelatedEventsPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageEventPageContentModulesRelatedCompetitors(BaseModel):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    primary_media: Optional[
        List[
            Optional[
                "GetPageGetPageEventPageContentModulesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = Field(alias="primaryMedia")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageEventPageContentModulesRelatedCompetitorsPrimaryMedia(BaseModel):
    id: Optional[str]
    title: Optional[str]
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    credit: Optional[str]
    show_in_media: Optional[bool] = Field(alias="showInMedia")
    complete: Optional[bool]
    file_name: Optional[str] = Field(alias="fileName")
    remote_item_code: Optional[str] = Field(alias="remoteItemCode")
    x_ml_file_name_360: Optional[str] = Field(alias="xMLFileName360")
    file_name_url: Optional[str] = Field(alias="fileNameUrl")
    type: Optional[int]
    format: Optional[int]
    hosting: Optional[int]
    related_links: Optional[List[Optional[str]]] = Field(alias="relatedLinks")
    source_width: Optional[int] = Field(alias="sourceWidth")
    source_height: Optional[int] = Field(alias="sourceHeight")
    available_ratios: Optional[List[Optional[int]]] = Field(alias="availableRatios")
    related_sex_codes: Optional[List[Optional[int]]] = Field(alias="relatedSexCodes")
    related_age_groups: Optional[List[Optional[int]]] = Field(alias="relatedAgeGroups")
    related_event_phases: Optional[List[Optional[int]]] = Field(
        alias="relatedEventPhases"
    )
    status: Optional[int]
    live_from: Optional[Any] = Field(alias="liveFrom")
    created_on: Optional[str] = Field(alias="createdOn")
    updated_on: Optional[Any] = Field(alias="updatedOn")
    created_by_id: Optional[str] = Field(alias="createdById")
    updated_by_id: Optional[str] = Field(alias="updatedById")


class GetPageGetPageEventPageContentModulesRelatedDiscipline(BaseModel):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageEventPageContentModulesRelatedMedia(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageContentModulesLifestyleLinks(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


class GetPageGetPageEventPageContentModulesFeatureLinks(BaseModel):
    name: Optional[str]
    url: Optional[str]


class GetPageGetPageEventPageContentModulesMinisitePage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageEventPageContentModulesMinisitePageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageEventPageContentModulesMinisitePageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[
            Optional["GetPageGetPageEventPageContentModulesMinisitePageContentModules"]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageEventPageContentModulesMinisitePageCampaign"]


class GetPageGetPageEventPageContentModulesMinisitePageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageEventPageContentModulesMinisitePageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageEventPageContentModulesMinisitePageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageEventPageContentModulesMinisitePageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageEventPageContentModulesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetPageGetPageEventPageContentModulesMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetPageGetPageEventPageContentModulesMinisiteFeatureImage"
    ] = Field(alias="featureImage")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesMinisiteDefaultSponsors"]]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesMinisiteSponsors"]]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageEventPageContentModulesMinisiteLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageContentModulesMinisiteFeatureImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageContentModulesMinisiteDefaultSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageEventPageContentModulesMinisiteSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageEventPageContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional["GetPageGetPageEventPageContentModulesLocationsLocation"]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


class GetPageGetPageEventPageContentModulesLocationsLocation(BaseModel):
    id: Optional[str]
    name: Optional[str]
    latitude: Optional[float]
    longitude: Optional[float]


class GetPageGetPageEventPageContentModulesVideos(BaseModel):
    thumbnail_image_id: Optional[str] = Field(alias="thumbnailImageId")
    thumbnail_image_edited: Optional[str] = Field(alias="thumbnailImageEdited")
    thumbnail_image: Optional[
        "GetPageGetPageEventPageContentModulesVideosThumbnailImage"
    ] = Field(alias="thumbnailImage")
    title: Optional[str]
    description: Optional[str]
    time: Optional[str]
    video: Optional[str]


class GetPageGetPageEventPageContentModulesVideosThumbnailImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageEventPageContentModulesBanners(BaseModel):
    image_id: Optional[str] = Field(alias="imageId")
    url: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional["GetPageGetPageEventPageContentModulesBannersPage"]


class GetPageGetPageEventPageContentModulesBannersPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageEventPageContentModulesSlides(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    article_title: Optional[str] = Field(alias="articleTitle")
    article_slug: Optional[str] = Field(alias="articleSlug")
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    colour: Optional[str]
    url: Optional[str]
    standfirst: Optional[str]
    link_url: Optional[str] = Field(alias="linkUrl")
    subtitle: Optional[str]
    title: Optional[str]
    video_url: Optional[str] = Field(alias="videoUrl")
    read_more_link: Optional[str] = Field(alias="readMoreLink")
    headline: Optional[str]
    strapline: Optional[str]
    read_more_text: Optional[str] = Field(alias="readMoreText")
    date: Optional[str]
    subheadline: Optional[str]


class GetPageGetPageEventPageContentModulesSections(BaseModel):
    title: Optional[str]
    show: Optional[bool]
    links: Optional[
        List[Optional["GetPageGetPageEventPageContentModulesSectionsLinks"]]
    ]


class GetPageGetPageEventPageContentModulesSectionsLinks(BaseModel):
    name: Optional[str]
    url: Optional[str]
    page_id: Optional[str] = Field(alias="pageId")
    file_id: Optional[List[Optional[str]]] = Field(alias="fileId")


class GetPageGetPageEventPageContentModulesRelatedVideos(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageEventPageContentModulesRelatedVideo(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageEventPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetPageGetPageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional["GetPageGetPageMinisiteFeatureImage"] = Field(
        alias="featureImage"
    )
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[Optional["GetPageGetPageMinisiteDefaultSponsors"]]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[List[Optional["GetPageGetPageMinisiteSponsors"]]]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageMinisiteLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageMinisiteFeatureImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageMinisiteDefaultSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo: Optional["GetPageGetPageMinisiteDefaultSponsorsLightBgLogo"] = Field(
        alias="lightBgLogo"
    )
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo: Optional["GetPageGetPageMinisiteDefaultSponsorsDarkBgLogo"] = Field(
        alias="darkBgLogo"
    )
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageMinisiteDefaultSponsorsLightBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageMinisiteDefaultSponsorsDarkBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageMinisiteSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo: Optional["GetPageGetPageMinisiteSponsorsLightBgLogo"] = Field(
        alias="lightBgLogo"
    )
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo: Optional["GetPageGetPageMinisiteSponsorsDarkBgLogo"] = Field(
        alias="darkBgLogo"
    )
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageMinisiteSponsorsLightBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageMinisiteSponsorsDarkBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticles"]]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedEvents"]]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedCompetitors"]]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedDiscipline"]]
    ] = Field(alias="relatedDiscipline")
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    related_media: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedMedia"]]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[Optional["GetPageGetPageContentModulesLifestyleLinks"]]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[Optional["GetPageGetPageContentModulesFeatureLinks"]]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional["GetPageGetPageContentModulesMinisitePage"] = Field(
        alias="minisitePage"
    )
    minisite: Optional["GetPageGetPageContentModulesMinisite"]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[List[Optional["GetPageGetPageContentModulesLocations"]]]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[List[Optional["GetPageGetPageContentModulesVideos"]]]
    banners: Optional[List[Optional["GetPageGetPageContentModulesBanners"]]]
    slides: Optional[List[Optional["GetPageGetPageContentModulesSlides"]]]
    sections: Optional[List[Optional["GetPageGetPageContentModulesSections"]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    related_videos: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedVideos"]]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional["GetPageGetPageContentModulesRelatedVideo"] = Field(
        alias="relatedVideo"
    )


class GetPageGetPageContentModulesRelatedArticles(BaseModel):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    related_media: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesRelatedMedia"]]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesRelatedArticlesEvent"]
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesRelatedCompetitors"]]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesRelatedDiscipline"]]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_discipline_stats: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStats"
    ] = Field(alias="relatedDisciplineStats")
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesRelatedCompetitions"]]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesRelatedEvents"]]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesRelatedArticles"]]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional["GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePages"]
        ]
    ] = Field(alias="relatedMinisitePages")
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    related_links: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesRelatedLinks"]]
    ] = Field(alias="relatedLinks")
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    content_modules: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesRelatedArticlesRelatedMedia(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedArticlesEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedArticlesEventCircuits"]]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageContentModulesRelatedArticlesEventPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesEventCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedArticlesEventPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesRelatedArticlesEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageContentModulesRelatedArticlesEventPageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesEventPageContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageContentModulesRelatedArticlesEventPageCampaign"]


class GetPageGetPageContentModulesRelatedArticlesEventPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesRelatedArticlesEventPageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageContentModulesRelatedArticlesEventPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitors(BaseModel):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    primary_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = Field(alias="primaryMedia")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitorsPrimaryMedia(
    BaseModel
):
    id: Optional[str]
    title: Optional[str]
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    credit: Optional[str]
    show_in_media: Optional[bool] = Field(alias="showInMedia")
    complete: Optional[bool]
    file_name: Optional[str] = Field(alias="fileName")
    remote_item_code: Optional[str] = Field(alias="remoteItemCode")
    x_ml_file_name_360: Optional[str] = Field(alias="xMLFileName360")
    file_name_url: Optional[str] = Field(alias="fileNameUrl")
    type: Optional[int]
    format: Optional[int]
    hosting: Optional[int]
    related_links: Optional[List[Optional[str]]] = Field(alias="relatedLinks")
    source_width: Optional[int] = Field(alias="sourceWidth")
    source_height: Optional[int] = Field(alias="sourceHeight")
    available_ratios: Optional[List[Optional[int]]] = Field(alias="availableRatios")
    related_sex_codes: Optional[List[Optional[int]]] = Field(alias="relatedSexCodes")
    related_age_groups: Optional[List[Optional[int]]] = Field(alias="relatedAgeGroups")
    related_event_phases: Optional[List[Optional[int]]] = Field(
        alias="relatedEventPhases"
    )
    status: Optional[int]
    live_from: Optional[Any] = Field(alias="liveFrom")
    created_on: Optional[str] = Field(alias="createdOn")
    updated_on: Optional[Any] = Field(alias="updatedOn")
    created_by_id: Optional[str] = Field(alias="createdById")
    updated_by_id: Optional[str] = Field(alias="updatedById")


class GetPageGetPageContentModulesRelatedArticlesRelatedDiscipline(BaseModel):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStats(BaseModel):
    discipline: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsDiscipline"
    ]
    season_best: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsSeasonBest"
            ]
        ]
    ] = Field(alias="seasonBest")
    previous_medalists: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsPreviousMedalists"
            ]
        ]
    ] = Field(alias="previousMedalists")
    records: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsRecords"
            ]
        ]
    ]
    timetable: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsTimetable"
            ]
        ]
    ]
    results: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsResults"
            ]
        ]
    ]


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsDiscipline(
    BaseModel
):
    sex_name: Optional[str] = Field(alias="sexName")
    discipline_name: Optional[str] = Field(alias="disciplineName")
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    is_relay: Optional[bool] = Field(alias="isRelay")


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsSeasonBest(
    BaseModel
):
    aa_id: Optional[int] = Field(alias="aaId")
    result: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    achiever: Optional[str]
    nationality: Optional[str]
    result_score: Optional[int] = Field(alias="resultScore")
    achiever_position: Optional[int] = Field(alias="achieverPosition")


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsPreviousMedalists(
    BaseModel
):
    name: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    type_id: Optional[int] = Field(alias="typeId")
    result_mark: Optional[str] = Field(alias="resultMark")
    url_slug: Optional[str] = Field(alias="urlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    link_url: Optional[str] = Field(alias="linkUrl")


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsRecords(
    BaseModel
):
    category_id: Optional[int] = Field(alias="categoryId")
    result_mark: Optional[str] = Field(alias="resultMark")
    name: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    link_url: Optional[str] = Field(alias="linkUrl")
    pending: Optional[bool]


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsTimetable(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    phase_code: Optional[str] = Field(alias="phaseCode")
    phase_name: Optional[str] = Field(alias="phaseName")
    event_id: Optional[int] = Field(alias="eventID")
    phase_date_and_time: Optional[Any] = Field(alias="phaseDateAndTime")
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    discipline: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsTimetableDiscipline"
    ]
    is_startlist_published: Optional[bool] = Field(alias="isStartlistPublished")
    is_result_published: Optional[bool] = Field(alias="isResultPublished")
    is_phase_summary_published: Optional[bool] = Field(alias="isPhaseSummaryPublished")
    is_team_standing_published: Optional[bool] = Field(alias="isTeamStandingPublished")
    combined_discipline_order: Optional[int] = Field(alias="combinedDisciplineOrder")
    phase_order: Optional[int] = Field(alias="phaseOrder")
    phase_session_name: Optional[str] = Field(alias="phaseSessionName")
    phase_session_order: Optional[int] = Field(alias="phaseSessionOrder")
    status: Optional[int]
    has_time: Optional[bool] = Field(alias="hasTime")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    primary_phase_order: Optional[int] = Field(alias="primaryPhaseOrder")
    is_points_published: Optional[bool] = Field(alias="isPointsPublished")
    phase_name_url_slug: Optional[str] = Field(alias="phaseNameUrlSlug")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    unit_name: Optional[str] = Field(alias="unitName")
    unit_type_name: Optional[str] = Field(alias="unitTypeName")
    url_slug: Optional[str] = Field(alias="urlSlug")


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsTimetableDiscipline(
    BaseModel
):
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    id: Optional[str] = Field(alias="_id")
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsResults(
    BaseModel
):
    date: Optional[str]
    day: Optional[int]
    race: Optional[str]
    race_id: Optional[int] = Field(alias="raceId")
    race_number: Optional[int] = Field(alias="raceNumber")
    wind: Optional[str]
    results: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsResultsResults"
            ]
        ]
    ]
    start_list: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsResultsStartList"
            ]
        ]
    ] = Field(alias="startList")


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsResultsResults(
    BaseModel
):
    id: Optional[str]
    mark: Optional[str]
    nationality: Optional[str]
    place: Optional[str]
    points: Optional[int]
    qualified: Optional[bool]
    records: Optional[str]
    wind: Optional[str]
    remark: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsResultsStartList(
    BaseModel
):
    order: Optional[str]
    pb: Optional[str]
    sb: Optional[str]
    bib: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitions(BaseModel):
    id: Optional[str]
    name: Optional[str]
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    event_sub_category_code: Optional[str] = Field(alias="eventSubCategoryCode")
    description: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    order: Optional[int]
    category: Optional[int]
    about: Optional[str]
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    related_media_ids: Optional[List[Optional[str]]] = Field(alias="relatedMediaIds")
    logo_light_id: Optional[str] = Field(alias="logoLightId")
    logo_dark_id: Optional[str] = Field(alias="logoDarkId")
    style_overrides: Optional[str] = Field(alias="styleOverrides")
    related_info: Optional[List[Optional[str]]] = Field(alias="relatedInfo")
    next_event: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsNextEvent"
    ] = Field(alias="nextEvent")
    last_event: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsLastEvent"
    ] = Field(alias="lastEvent")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional["GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPage"]


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsNextEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsNextEventCircuits"
            ]
        ]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsNextEventPage"
    ]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsNextEventCircuits(
    BaseModel
):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsNextEventPage(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsLastEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsLastEventCircuits"
            ]
        ]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsLastEventPage"
    ]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsLastEventCircuits(
    BaseModel
):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsLastEventPage(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPageMinisite"
    ]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPageContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPageCampaign"
    ]


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPageEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPageMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPageContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPageCampaign(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesRelatedArticlesRelatedEvents(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[
            Optional["GetPageGetPageContentModulesRelatedArticlesRelatedEventsCircuits"]
        ]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageContentModulesRelatedArticlesRelatedEventsPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedEventsCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedArticlesRelatedEventsPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesRelatedArticlesRelatedEventsPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedEventsPageMinisite"
    ]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedEventsPageContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedEventsPageCampaign"
    ]


class GetPageGetPageContentModulesRelatedArticlesRelatedEventsPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedEventsPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesRelatedArticlesRelatedEventsPageContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageContentModulesRelatedArticlesRelatedEventsPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticles(BaseModel):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    related_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesRelatedArticlesRelatedArticlesEvent"]
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_discipline_stats: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStats"
    ] = Field(alias="relatedDisciplineStats")
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = Field(alias="relatedMinisitePages")
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    related_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = Field(alias="relatedLinks")
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMedia(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesEventCircuits"
            ]
        ]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesEventPage"
    ]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesEventCircuits(
    BaseModel
):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesEventPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitors(
    BaseModel
):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    primary_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = Field(alias="primaryMedia")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitorsPrimaryMedia(
    BaseModel
):
    id: Optional[str]
    title: Optional[str]
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    credit: Optional[str]
    show_in_media: Optional[bool] = Field(alias="showInMedia")
    complete: Optional[bool]
    file_name: Optional[str] = Field(alias="fileName")
    remote_item_code: Optional[str] = Field(alias="remoteItemCode")
    x_ml_file_name_360: Optional[str] = Field(alias="xMLFileName360")
    file_name_url: Optional[str] = Field(alias="fileNameUrl")
    type: Optional[int]
    format: Optional[int]
    hosting: Optional[int]
    related_links: Optional[List[Optional[str]]] = Field(alias="relatedLinks")
    source_width: Optional[int] = Field(alias="sourceWidth")
    source_height: Optional[int] = Field(alias="sourceHeight")
    available_ratios: Optional[List[Optional[int]]] = Field(alias="availableRatios")
    related_sex_codes: Optional[List[Optional[int]]] = Field(alias="relatedSexCodes")
    related_age_groups: Optional[List[Optional[int]]] = Field(alias="relatedAgeGroups")
    related_event_phases: Optional[List[Optional[int]]] = Field(
        alias="relatedEventPhases"
    )
    status: Optional[int]
    live_from: Optional[Any] = Field(alias="liveFrom")
    created_on: Optional[str] = Field(alias="createdOn")
    updated_on: Optional[Any] = Field(alias="updatedOn")
    created_by_id: Optional[str] = Field(alias="createdById")
    updated_by_id: Optional[str] = Field(alias="updatedById")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDiscipline(
    BaseModel
):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStats(
    BaseModel
):
    discipline: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsDiscipline"
    ]
    season_best: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsSeasonBest"
            ]
        ]
    ] = Field(alias="seasonBest")
    previous_medalists: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsPreviousMedalists"
            ]
        ]
    ] = Field(alias="previousMedalists")
    records: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsRecords"
            ]
        ]
    ]
    timetable: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetable"
            ]
        ]
    ]
    results: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsResults"
            ]
        ]
    ]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsDiscipline(
    BaseModel
):
    sex_name: Optional[str] = Field(alias="sexName")
    discipline_name: Optional[str] = Field(alias="disciplineName")
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    is_relay: Optional[bool] = Field(alias="isRelay")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsSeasonBest(
    BaseModel
):
    aa_id: Optional[int] = Field(alias="aaId")
    result: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    achiever: Optional[str]
    nationality: Optional[str]
    result_score: Optional[int] = Field(alias="resultScore")
    achiever_position: Optional[int] = Field(alias="achieverPosition")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsPreviousMedalists(
    BaseModel
):
    name: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    type_id: Optional[int] = Field(alias="typeId")
    result_mark: Optional[str] = Field(alias="resultMark")
    url_slug: Optional[str] = Field(alias="urlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    link_url: Optional[str] = Field(alias="linkUrl")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsRecords(
    BaseModel
):
    category_id: Optional[int] = Field(alias="categoryId")
    result_mark: Optional[str] = Field(alias="resultMark")
    name: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    link_url: Optional[str] = Field(alias="linkUrl")
    pending: Optional[bool]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetable(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    phase_code: Optional[str] = Field(alias="phaseCode")
    phase_name: Optional[str] = Field(alias="phaseName")
    event_id: Optional[int] = Field(alias="eventID")
    phase_date_and_time: Optional[Any] = Field(alias="phaseDateAndTime")
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    is_startlist_published: Optional[bool] = Field(alias="isStartlistPublished")
    is_result_published: Optional[bool] = Field(alias="isResultPublished")
    is_phase_summary_published: Optional[bool] = Field(alias="isPhaseSummaryPublished")
    is_team_standing_published: Optional[bool] = Field(alias="isTeamStandingPublished")
    combined_discipline_order: Optional[int] = Field(alias="combinedDisciplineOrder")
    phase_order: Optional[int] = Field(alias="phaseOrder")
    phase_session_name: Optional[str] = Field(alias="phaseSessionName")
    phase_session_order: Optional[int] = Field(alias="phaseSessionOrder")
    status: Optional[int]
    has_time: Optional[bool] = Field(alias="hasTime")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    primary_phase_order: Optional[int] = Field(alias="primaryPhaseOrder")
    is_points_published: Optional[bool] = Field(alias="isPointsPublished")
    phase_name_url_slug: Optional[str] = Field(alias="phaseNameUrlSlug")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    unit_name: Optional[str] = Field(alias="unitName")
    unit_type_name: Optional[str] = Field(alias="unitTypeName")
    url_slug: Optional[str] = Field(alias="urlSlug")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStatsResults(
    BaseModel
):
    date: Optional[str]
    day: Optional[int]
    race: Optional[str]
    race_id: Optional[int] = Field(alias="raceId")
    race_number: Optional[int] = Field(alias="raceNumber")
    wind: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitions(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    event_sub_category_code: Optional[str] = Field(alias="eventSubCategoryCode")
    description: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    order: Optional[int]
    category: Optional[int]
    about: Optional[str]
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    related_media_ids: Optional[List[Optional[str]]] = Field(alias="relatedMediaIds")
    logo_light_id: Optional[str] = Field(alias="logoLightId")
    logo_dark_id: Optional[str] = Field(alias="logoDarkId")
    style_overrides: Optional[str] = Field(alias="styleOverrides")
    related_info: Optional[List[Optional[str]]] = Field(alias="relatedInfo")
    next_event: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitionsNextEvent"
    ] = Field(alias="nextEvent")
    last_event: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitionsLastEvent"
    ] = Field(alias="lastEvent")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitionsPage"
    ]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitionsNextEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitionsLastEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitionsPage(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedEvents(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedEventsCircuits"
            ]
        ]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedEventsPage"
    ]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedEventsCircuits(
    BaseModel
):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedEventsPage(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticles(
    BaseModel
):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    related_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesEvent"
    ]
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = Field(alias="relatedMinisitePages")
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    related_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = Field(alias="relatedLinks")
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedMedia(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitors(
    BaseModel
):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedDiscipline(
    BaseModel
):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitions(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    event_sub_category_code: Optional[str] = Field(alias="eventSubCategoryCode")
    description: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    order: Optional[int]
    category: Optional[int]
    about: Optional[str]
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    related_media_ids: Optional[List[Optional[str]]] = Field(alias="relatedMediaIds")
    logo_light_id: Optional[str] = Field(alias="logoLightId")
    logo_dark_id: Optional[str] = Field(alias="logoDarkId")
    style_overrides: Optional[str] = Field(alias="styleOverrides")
    related_info: Optional[List[Optional[str]]] = Field(alias="relatedInfo")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedEvents(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticles(
    BaseModel
):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    event_id: Optional[int] = Field(alias="eventId")
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePages(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticlesContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    layout: Optional[int]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    slug: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePages(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePagesEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisite"
    ]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePagesCampaign"
    ]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePagesEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePagesCampaign(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedLinks(BaseModel):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    locations: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModulesLocations"
            ]
        ]
    ]
    layout: Optional[int]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    related_videos: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    related_video: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")
    slug: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModulesLocations(
    BaseModel
):
    location_id: Optional[str] = Field(alias="locationId")
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModulesRelatedVideos(
    BaseModel
):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModulesRelatedVideo(
    BaseModel
):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePages(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisite"
    ]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesCampaign"
    ]


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesEventCircuits"
            ]
        ]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesEventPage"
    ]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesEventCircuits(
    BaseModel
):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesEventPage(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisiteFeatureImage"
    ] = Field(alias="featureImage")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisiteSponsors"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisiteLogo(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisiteFeatureImage(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsors(
    BaseModel
):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisiteSponsors(
    BaseModel
):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    related_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesSections"
            ]
        ]
    ]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    related_videos: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticles(
    BaseModel
):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    event_id: Optional[int] = Field(alias="eventId")
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedEvents(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitors(
    BaseModel
):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedDiscipline(
    BaseModel
):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedMedia(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesFeatureLinks(
    BaseModel
):
    name: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesMinisitePage(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesLocations(
    BaseModel
):
    location_id: Optional[str] = Field(alias="locationId")
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesVideos(
    BaseModel
):
    thumbnail_image_id: Optional[str] = Field(alias="thumbnailImageId")
    thumbnail_image_edited: Optional[str] = Field(alias="thumbnailImageEdited")
    title: Optional[str]
    description: Optional[str]
    time: Optional[str]
    video: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesBanners(
    BaseModel
):
    image_id: Optional[str] = Field(alias="imageId")
    url: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    page_id: Optional[str] = Field(alias="pageId")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesSlides(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    article_title: Optional[str] = Field(alias="articleTitle")
    article_slug: Optional[str] = Field(alias="articleSlug")
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    colour: Optional[str]
    url: Optional[str]
    standfirst: Optional[str]
    link_url: Optional[str] = Field(alias="linkUrl")
    subtitle: Optional[str]
    title: Optional[str]
    video_url: Optional[str] = Field(alias="videoUrl")
    read_more_link: Optional[str] = Field(alias="readMoreLink")
    headline: Optional[str]
    strapline: Optional[str]
    read_more_text: Optional[str] = Field(alias="readMoreText")
    date: Optional[str]
    subheadline: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideos(
    BaseModel
):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideo(
    BaseModel
):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesCampaign(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesRelatedArticlesRelatedLinks(BaseModel):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    locations: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesContentModulesLocations"
            ]
        ]
    ]
    layout: Optional[int]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    related_videos: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedArticlesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    related_video: Optional[
        "GetPageGetPageContentModulesRelatedArticlesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")
    slug: Optional[str]


class GetPageGetPageContentModulesRelatedArticlesContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional[
        "GetPageGetPageContentModulesRelatedArticlesContentModulesLocationsLocation"
    ]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


class GetPageGetPageContentModulesRelatedArticlesContentModulesLocationsLocation(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    latitude: Optional[float]
    longitude: Optional[float]


class GetPageGetPageContentModulesRelatedArticlesContentModulesRelatedVideos(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedArticlesContentModulesRelatedVideo(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedEvents(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedEventsCircuits"]]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageContentModulesRelatedEventsPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedEventsCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedEventsPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesRelatedEventsPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageContentModulesRelatedEventsPageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedEventsPageContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageContentModulesRelatedEventsPageCampaign"]


class GetPageGetPageContentModulesRelatedEventsPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedEventsPageEventCircuits"]]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageContentModulesRelatedEventsPageEventPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedEventsPageEventCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesRelatedEventsPageEventPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedEventsPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetPageGetPageContentModulesRelatedEventsPageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetPageGetPageContentModulesRelatedEventsPageMinisiteFeatureImage"
    ] = Field(alias="featureImage")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedEventsPageMinisiteSponsors"]]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesRelatedEventsPageMinisiteLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedEventsPageMinisiteFeatureImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedEventsPageMinisiteDefaultSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesRelatedEventsPageMinisiteSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesRelatedEventsPageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    related_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetPageGetPageContentModulesRelatedEventsPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetPageGetPageContentModulesRelatedEventsPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesSections"
            ]
        ]
    ]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    related_videos: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedArticles(
    BaseModel
):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    event_id: Optional[int] = Field(alias="eventId")
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedEvents(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedCompetitors(
    BaseModel
):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedDiscipline(
    BaseModel
):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedMedia(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesRelatedEventsPageContentModulesFeatureLinks(
    BaseModel
):
    name: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesRelatedEventsPageContentModulesMinisitePage(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesVideos(BaseModel):
    thumbnail_image_id: Optional[str] = Field(alias="thumbnailImageId")
    thumbnail_image_edited: Optional[str] = Field(alias="thumbnailImageEdited")
    title: Optional[str]
    description: Optional[str]
    time: Optional[str]
    video: Optional[str]


class GetPageGetPageContentModulesRelatedEventsPageContentModulesBanners(BaseModel):
    image_id: Optional[str] = Field(alias="imageId")
    url: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    page_id: Optional[str] = Field(alias="pageId")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesSlides(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    article_title: Optional[str] = Field(alias="articleTitle")
    article_slug: Optional[str] = Field(alias="articleSlug")
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    colour: Optional[str]
    url: Optional[str]
    standfirst: Optional[str]
    link_url: Optional[str] = Field(alias="linkUrl")
    subtitle: Optional[str]
    title: Optional[str]
    video_url: Optional[str] = Field(alias="videoUrl")
    read_more_link: Optional[str] = Field(alias="readMoreLink")
    headline: Optional[str]
    strapline: Optional[str]
    read_more_text: Optional[str] = Field(alias="readMoreText")
    date: Optional[str]
    subheadline: Optional[str]


class GetPageGetPageContentModulesRelatedEventsPageContentModulesSections(BaseModel):
    title: Optional[str]
    show: Optional[bool]


class GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedVideos(
    BaseModel
):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedEventsPageContentModulesRelatedVideo(
    BaseModel
):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedEventsPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesRelatedCompetitors(BaseModel):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    primary_media: Optional[
        List[Optional["GetPageGetPageContentModulesRelatedCompetitorsPrimaryMedia"]]
    ] = Field(alias="primaryMedia")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesRelatedCompetitorsPrimaryMedia(BaseModel):
    id: Optional[str]
    title: Optional[str]
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    credit: Optional[str]
    show_in_media: Optional[bool] = Field(alias="showInMedia")
    complete: Optional[bool]
    file_name: Optional[str] = Field(alias="fileName")
    remote_item_code: Optional[str] = Field(alias="remoteItemCode")
    x_ml_file_name_360: Optional[str] = Field(alias="xMLFileName360")
    file_name_url: Optional[str] = Field(alias="fileNameUrl")
    type: Optional[int]
    format: Optional[int]
    hosting: Optional[int]
    related_links: Optional[List[Optional[str]]] = Field(alias="relatedLinks")
    source_width: Optional[int] = Field(alias="sourceWidth")
    source_height: Optional[int] = Field(alias="sourceHeight")
    available_ratios: Optional[List[Optional[int]]] = Field(alias="availableRatios")
    related_sex_codes: Optional[List[Optional[int]]] = Field(alias="relatedSexCodes")
    related_age_groups: Optional[List[Optional[int]]] = Field(alias="relatedAgeGroups")
    related_event_phases: Optional[List[Optional[int]]] = Field(
        alias="relatedEventPhases"
    )
    status: Optional[int]
    live_from: Optional[Any] = Field(alias="liveFrom")
    created_on: Optional[str] = Field(alias="createdOn")
    updated_on: Optional[Any] = Field(alias="updatedOn")
    created_by_id: Optional[str] = Field(alias="createdById")
    updated_by_id: Optional[str] = Field(alias="updatedById")


class GetPageGetPageContentModulesRelatedDiscipline(BaseModel):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesRelatedMedia(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesLifestyleLinks(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesFeatureLinks(BaseModel):
    name: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesMinisitePage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesMinisitePageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageContentModulesMinisitePageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[Optional["GetPageGetPageContentModulesMinisitePageContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageContentModulesMinisitePageCampaign"]


class GetPageGetPageContentModulesMinisitePageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[Optional["GetPageGetPageContentModulesMinisitePageEventCircuits"]]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageContentModulesMinisitePageEventPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesMinisitePageEventCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesMinisitePageEventPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesMinisitePageEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageContentModulesMinisitePageEventPageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[
            Optional["GetPageGetPageContentModulesMinisitePageEventPageContentModules"]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageContentModulesMinisitePageEventPageCampaign"]


class GetPageGetPageContentModulesMinisitePageEventPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesMinisitePageEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesMinisitePageEventPageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageContentModulesMinisitePageEventPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesMinisitePageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetPageGetPageContentModulesMinisitePageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetPageGetPageContentModulesMinisitePageMinisiteFeatureImage"
    ] = Field(alias="featureImage")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[
            Optional["GetPageGetPageContentModulesMinisitePageMinisiteDefaultSponsors"]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[Optional["GetPageGetPageContentModulesMinisitePageMinisiteSponsors"]]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesMinisitePageMinisiteLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageMinisiteFeatureImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageMinisiteDefaultSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo: Optional[
        "GetPageGetPageContentModulesMinisitePageMinisiteDefaultSponsorsLightBgLogo"
    ] = Field(alias="lightBgLogo")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo: Optional[
        "GetPageGetPageContentModulesMinisitePageMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesMinisitePageMinisiteDefaultSponsorsLightBgLogo(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageMinisiteDefaultSponsorsDarkBgLogo(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageMinisiteSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo: Optional[
        "GetPageGetPageContentModulesMinisitePageMinisiteSponsorsLightBgLogo"
    ] = Field(alias="lightBgLogo")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo: Optional[
        "GetPageGetPageContentModulesMinisitePageMinisiteSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesMinisitePageMinisiteSponsorsLightBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageMinisiteSponsorsDarkBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    related_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional["GetPageGetPageContentModulesMinisitePageContentModulesMinisite"]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional["GetPageGetPageContentModulesMinisitePageContentModulesLocations"]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[Optional["GetPageGetPageContentModulesMinisitePageContentModulesVideos"]]
    ]
    banners: Optional[
        List[Optional["GetPageGetPageContentModulesMinisitePageContentModulesBanners"]]
    ]
    slides: Optional[
        List[Optional["GetPageGetPageContentModulesMinisitePageContentModulesSlides"]]
    ]
    sections: Optional[
        List[Optional["GetPageGetPageContentModulesMinisitePageContentModulesSections"]]
    ]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    related_videos: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticles(BaseModel):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    related_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesEvent"
    ]
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = Field(alias="relatedMinisitePages")
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    related_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = Field(alias="relatedLinks")
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedMedia(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedCompetitors(
    BaseModel
):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedDiscipline(
    BaseModel
):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedCompetitions(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    event_sub_category_code: Optional[str] = Field(alias="eventSubCategoryCode")
    description: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    url_slug: Optional[str] = Field(alias="urlSlug")
    order: Optional[int]
    category: Optional[int]
    about: Optional[str]
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    related_media_ids: Optional[List[Optional[str]]] = Field(alias="relatedMediaIds")
    logo_light_id: Optional[str] = Field(alias="logoLightId")
    logo_dark_id: Optional[str] = Field(alias="logoDarkId")
    style_overrides: Optional[str] = Field(alias="styleOverrides")
    related_info: Optional[List[Optional[str]]] = Field(alias="relatedInfo")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedEvents(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedArticles(
    BaseModel
):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    event_id: Optional[int] = Field(alias="eventId")
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedMinisitePages(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticlesContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    layout: Optional[int]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    slug: Optional[str]


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedEvents(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedEventsCircuits"
            ]
        ]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesRelatedEventsPage"
    ]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedEventsCircuits(
    BaseModel
):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedEventsPage(
    BaseModel
):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedCompetitors(
    BaseModel
):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    primary_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = Field(alias="primaryMedia")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedCompetitorsPrimaryMedia(
    BaseModel
):
    id: Optional[str]
    title: Optional[str]
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    credit: Optional[str]
    show_in_media: Optional[bool] = Field(alias="showInMedia")
    complete: Optional[bool]
    file_name: Optional[str] = Field(alias="fileName")
    remote_item_code: Optional[str] = Field(alias="remoteItemCode")
    x_ml_file_name_360: Optional[str] = Field(alias="xMLFileName360")
    file_name_url: Optional[str] = Field(alias="fileNameUrl")
    type: Optional[int]
    format: Optional[int]
    hosting: Optional[int]
    related_links: Optional[List[Optional[str]]] = Field(alias="relatedLinks")
    source_width: Optional[int] = Field(alias="sourceWidth")
    source_height: Optional[int] = Field(alias="sourceHeight")
    available_ratios: Optional[List[Optional[int]]] = Field(alias="availableRatios")
    related_sex_codes: Optional[List[Optional[int]]] = Field(alias="relatedSexCodes")
    related_age_groups: Optional[List[Optional[int]]] = Field(alias="relatedAgeGroups")
    related_event_phases: Optional[List[Optional[int]]] = Field(
        alias="relatedEventPhases"
    )
    status: Optional[int]
    live_from: Optional[Any] = Field(alias="liveFrom")
    created_on: Optional[str] = Field(alias="createdOn")
    updated_on: Optional[Any] = Field(alias="updatedOn")
    created_by_id: Optional[str] = Field(alias="createdById")
    updated_by_id: Optional[str] = Field(alias="updatedById")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedDiscipline(
    BaseModel
):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedMedia(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageContentModulesLifestyleLinks(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesMinisitePageContentModulesFeatureLinks(BaseModel):
    name: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesMinisitePageContentModulesMinisitePage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesMinisitePageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesMinisitePageMinisite"
    ]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesMinisitePageContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesMinisitePageCampaign"
    ]


class GetPageGetPageContentModulesMinisitePageContentModulesMinisitePageEvent(
    BaseModel
):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesMinisitePageContentModulesMinisitePageMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesMinisitePageContentModulesMinisitePageContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageContentModulesMinisitePageContentModulesMinisitePageCampaign(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesMinisitePageContentModulesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetPageGetPageContentModulesMinisitePageContentModulesMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesMinisiteFeatureImage"
    ] = Field(alias="featureImage")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesMinisiteSponsors"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesMinisitePageContentModulesMinisiteLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageContentModulesMinisiteFeatureImage(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageContentModulesMinisiteDefaultSponsors(
    BaseModel
):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesMinisitePageContentModulesMinisiteSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesMinisitePageContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesLocationsLocation"
    ]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


class GetPageGetPageContentModulesMinisitePageContentModulesLocationsLocation(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    latitude: Optional[float]
    longitude: Optional[float]


class GetPageGetPageContentModulesMinisitePageContentModulesVideos(BaseModel):
    thumbnail_image_id: Optional[str] = Field(alias="thumbnailImageId")
    thumbnail_image_edited: Optional[str] = Field(alias="thumbnailImageEdited")
    thumbnail_image: Optional[
        "GetPageGetPageContentModulesMinisitePageContentModulesVideosThumbnailImage"
    ] = Field(alias="thumbnailImage")
    title: Optional[str]
    description: Optional[str]
    time: Optional[str]
    video: Optional[str]


class GetPageGetPageContentModulesMinisitePageContentModulesVideosThumbnailImage(
    BaseModel
):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisitePageContentModulesBanners(BaseModel):
    image_id: Optional[str] = Field(alias="imageId")
    url: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional["GetPageGetPageContentModulesMinisitePageContentModulesBannersPage"]


class GetPageGetPageContentModulesMinisitePageContentModulesBannersPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesMinisitePageContentModulesSlides(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    article_title: Optional[str] = Field(alias="articleTitle")
    article_slug: Optional[str] = Field(alias="articleSlug")
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    colour: Optional[str]
    url: Optional[str]
    standfirst: Optional[str]
    link_url: Optional[str] = Field(alias="linkUrl")
    subtitle: Optional[str]
    title: Optional[str]
    video_url: Optional[str] = Field(alias="videoUrl")
    read_more_link: Optional[str] = Field(alias="readMoreLink")
    headline: Optional[str]
    strapline: Optional[str]
    read_more_text: Optional[str] = Field(alias="readMoreText")
    date: Optional[str]
    subheadline: Optional[str]


class GetPageGetPageContentModulesMinisitePageContentModulesSections(BaseModel):
    title: Optional[str]
    show: Optional[bool]
    links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesMinisitePageContentModulesSectionsLinks"
            ]
        ]
    ]


class GetPageGetPageContentModulesMinisitePageContentModulesSectionsLinks(BaseModel):
    name: Optional[str]
    url: Optional[str]
    page_id: Optional[str] = Field(alias="pageId")
    file_id: Optional[List[Optional[str]]] = Field(alias="fileId")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedVideos(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesMinisitePageContentModulesRelatedVideo(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesMinisitePageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetPageGetPageContentModulesMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional["GetPageGetPageContentModulesMinisiteFeatureImage"] = Field(
        alias="featureImage"
    )
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[Optional["GetPageGetPageContentModulesMinisiteDefaultSponsors"]]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[List[Optional["GetPageGetPageContentModulesMinisiteSponsors"]]]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesMinisiteLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisiteFeatureImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisiteDefaultSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo: Optional[
        "GetPageGetPageContentModulesMinisiteDefaultSponsorsLightBgLogo"
    ] = Field(alias="lightBgLogo")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo: Optional[
        "GetPageGetPageContentModulesMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesMinisiteDefaultSponsorsLightBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisiteDefaultSponsorsDarkBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisiteSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo: Optional[
        "GetPageGetPageContentModulesMinisiteSponsorsLightBgLogo"
    ] = Field(alias="lightBgLogo")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo: Optional[
        "GetPageGetPageContentModulesMinisiteSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesMinisiteSponsorsLightBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesMinisiteSponsorsDarkBgLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional["GetPageGetPageContentModulesLocationsLocation"]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


class GetPageGetPageContentModulesLocationsLocation(BaseModel):
    id: Optional[str]
    name: Optional[str]
    latitude: Optional[float]
    longitude: Optional[float]


class GetPageGetPageContentModulesVideos(BaseModel):
    thumbnail_image_id: Optional[str] = Field(alias="thumbnailImageId")
    thumbnail_image_edited: Optional[str] = Field(alias="thumbnailImageEdited")
    thumbnail_image: Optional[
        "GetPageGetPageContentModulesVideosThumbnailImage"
    ] = Field(alias="thumbnailImage")
    title: Optional[str]
    description: Optional[str]
    time: Optional[str]
    video: Optional[str]


class GetPageGetPageContentModulesVideosThumbnailImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesBanners(BaseModel):
    image_id: Optional[str] = Field(alias="imageId")
    url: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional["GetPageGetPageContentModulesBannersPage"]


class GetPageGetPageContentModulesBannersPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesBannersPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageContentModulesBannersPageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageContentModulesBannersPageCampaign"]


class GetPageGetPageContentModulesBannersPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    circuits: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageEventCircuits"]]
    ]
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    page: Optional["GetPageGetPageContentModulesBannersPageEventPage"]
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesBannersPageEventCircuits(BaseModel):
    updated_on: Optional[Any] = Field(alias="UpdatedOn")
    hash: Optional[str]
    circuit_code: Optional[str] = Field(alias="circuitCode")
    circuit_type_code: Optional[str] = Field(alias="circuitTypeCode")
    circuit_name: Optional[str] = Field(alias="circuitName")
    season: Optional[int]
    circuit_order: Optional[int] = Field(alias="circuitOrder")
    circuit_type_name: Optional[str] = Field(alias="circuitTypeName")


class GetPageGetPageContentModulesBannersPageEventPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesBannersPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetPageGetPageContentModulesBannersPageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetPageGetPageContentModulesBannersPageMinisiteFeatureImage"
    ] = Field(alias="featureImage")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    default_sponsors: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageMinisiteDefaultSponsors"]]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageMinisiteSponsors"]]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesBannersPageMinisiteLogo(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesBannersPageMinisiteFeatureImage(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesBannersPageMinisiteDefaultSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesBannersPageMinisiteSponsors(BaseModel):
    id: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    type: Optional[str]
    name: Optional[str]
    url: Optional[str]
    logo_scale: Optional[str] = Field(alias="logoScale")
    light_bg_logo_id: Optional[str] = Field(alias="lightBgLogoId")
    light_bg_logo_edited: Optional[str] = Field(alias="lightBgLogoEdited")
    dark_bg_logo_id: Optional[str] = Field(alias="darkBgLogoId")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetPageGetPageContentModulesBannersPageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesBannersPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesBannersPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesBannersPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesBannersPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    related_media: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesBannersPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesBannersPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesBannersPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetPageGetPageContentModulesBannersPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional["GetPageGetPageContentModulesBannersPageContentModulesMinisite"]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageContentModulesLocations"]]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageContentModulesVideos"]]
    ]
    banners: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageContentModulesBanners"]]
    ]
    slides: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageContentModulesSlides"]]
    ]
    sections: Optional[
        List[Optional["GetPageGetPageContentModulesBannersPageContentModulesSections"]]
    ]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    related_videos: Optional[
        List[
            Optional[
                "GetPageGetPageContentModulesBannersPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetPageGetPageContentModulesBannersPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetPageGetPageContentModulesBannersPageContentModulesRelatedArticles(BaseModel):
    id: Optional[str]
    title: Optional[str]
    body: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    stand_first: Optional[str] = Field(alias="standFirst")
    standfirst: Optional[str]
    background_colour: Optional[str] = Field(alias="backgroundColour")
    seo_description: Optional[str] = Field(alias="seoDescription")
    s_eo_title: Optional[str] = Field(alias="sEOTitle")
    seo_title: Optional[str] = Field(alias="seoTitle")
    url_slug: Optional[str] = Field(alias="urlSlug")
    slug: Optional[str]
    campaign_id: Optional[str] = Field(alias="campaignId")
    related_urls: Optional[str] = Field(alias="relatedUrls")
    live_from: Optional[Any] = Field(alias="liveFrom")
    article_type: Optional[int] = Field(alias="articleType")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    hide_on_the_main_site: Optional[bool] = Field(alias="hideOnTheMainSite")
    image_edited: Optional[str] = Field(alias="imageEdited")
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")
    event_id: Optional[int] = Field(alias="eventId")
    blog_updated: Optional[str] = Field(alias="blogUpdated")
    live_blog: Optional[bool] = Field(alias="liveBlog")
    language: Optional[str]
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_country_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedCountryCodes"
    )
    related_region_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedRegionCodes"
    )
    tags: Optional[List[Optional[str]]]
    published: Optional[Any]
    columns: Optional[int]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    related_articles_background_color: Optional[str] = Field(
        alias="relatedArticlesBackgroundColor"
    )
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetPageGetPageContentModulesBannersPageContentModulesRelatedEvents(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesBannersPageContentModulesRelatedCompetitors(
    BaseModel
):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    friendly_name: Optional[str] = Field(alias="friendlyName")
    full_name: Optional[str] = Field(alias="fullName")
    friendly_name_letter: Optional[str] = Field(alias="friendlyNameLetter")
    friendly_name_first_3_letter: Optional[str] = Field(
        alias="friendlyNameFirst3Letter"
    )
    sex_code: Optional[str] = Field(alias="sexCode")
    sex_name: Optional[str] = Field(alias="sexName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_place: Optional[str] = Field(alias="birthPlace")
    birth_place_country_name: Optional[str] = Field(alias="birthPlaceCountryName")
    sex_name_url_slug: Optional[str] = Field(alias="sexNameUrlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_place_country_url_slug: Optional[str] = Field(
        alias="birthPlaceCountryUrlSlug"
    )
    birth_country_code: Optional[str] = Field(alias="birthCountryCode")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    primary_media_edited: Optional[str] = Field(alias="primaryMediaEdited")
    url_slug: Optional[str] = Field(alias="urlSlug")
    representative_id: Optional[int] = Field(alias="representativeId")
    biography: Optional[str]
    twitter_link: Optional[str] = Field(alias="twitterLink")
    instagram_link: Optional[str] = Field(alias="instagramLink")
    facebook_link: Optional[str] = Field(alias="facebookLink")
    transfers_of_allegiance: Optional[List[Optional[str]]] = Field(
        alias="transfersOfAllegiance"
    )
    aa_id: Optional[int] = Field(alias="aaId")
    country_full_name: Optional[str] = Field(alias="countryFullName")
    family_name: Optional[str] = Field(alias="familyName")
    given_name: Optional[str] = Field(alias="givenName")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    facebook_username: Optional[str] = Field(alias="facebookUsername")
    twitter_username: Optional[str] = Field(alias="twitterUsername")
    instagram_username: Optional[str] = Field(alias="instagramUsername")
    male: Optional[bool]
    media_ids: Optional[List[Optional[str]]] = Field(alias="mediaIds")


class GetPageGetPageContentModulesBannersPageContentModulesRelatedDiscipline(BaseModel):
    id: Optional[str]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    hash: Optional[str]
    name: Optional[str]
    type_code: Optional[str] = Field(alias="typeCode")
    type_name: Optional[str] = Field(alias="typeName")
    type_order: Optional[int] = Field(alias="typeOrder")
    order: Optional[int]
    is_track: Optional[bool] = Field(alias="isTrack")
    is_field: Optional[bool] = Field(alias="isField")
    is_road: Optional[bool] = Field(alias="isRoad")
    is_combined: Optional[bool] = Field(alias="isCombined")
    is_walk: Optional[bool] = Field(alias="isWalk")
    is_indoor: Optional[bool] = Field(alias="isIndoor")
    is_reaction: Optional[bool] = Field(alias="isReaction")
    is_outdoor: Optional[bool] = Field(alias="isOutdoor")
    is_wind: Optional[bool] = Field(alias="isWind")
    is_relay: Optional[bool] = Field(alias="isRelay")
    is_valid_iaaf: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class GetPageGetPageContentModulesBannersPageContentModulesRelatedMedia(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesBannersPageContentModulesLifestyleLinks(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesBannersPageContentModulesFeatureLinks(BaseModel):
    name: Optional[str]
    url: Optional[str]


class GetPageGetPageContentModulesBannersPageContentModulesMinisitePage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    site_id: Optional[str] = Field(alias="siteId")
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")


class GetPageGetPageContentModulesBannersPageContentModulesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesBannersPageContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


class GetPageGetPageContentModulesBannersPageContentModulesVideos(BaseModel):
    thumbnail_image_id: Optional[str] = Field(alias="thumbnailImageId")
    thumbnail_image_edited: Optional[str] = Field(alias="thumbnailImageEdited")
    title: Optional[str]
    description: Optional[str]
    time: Optional[str]
    video: Optional[str]


class GetPageGetPageContentModulesBannersPageContentModulesBanners(BaseModel):
    image_id: Optional[str] = Field(alias="imageId")
    url: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    page_id: Optional[str] = Field(alias="pageId")


class GetPageGetPageContentModulesBannersPageContentModulesSlides(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    article_title: Optional[str] = Field(alias="articleTitle")
    article_slug: Optional[str] = Field(alias="articleSlug")
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    colour: Optional[str]
    url: Optional[str]
    standfirst: Optional[str]
    link_url: Optional[str] = Field(alias="linkUrl")
    subtitle: Optional[str]
    title: Optional[str]
    video_url: Optional[str] = Field(alias="videoUrl")
    read_more_link: Optional[str] = Field(alias="readMoreLink")
    headline: Optional[str]
    strapline: Optional[str]
    read_more_text: Optional[str] = Field(alias="readMoreText")
    date: Optional[str]
    subheadline: Optional[str]


class GetPageGetPageContentModulesBannersPageContentModulesSections(BaseModel):
    title: Optional[str]
    show: Optional[bool]


class GetPageGetPageContentModulesBannersPageContentModulesRelatedVideos(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesBannersPageContentModulesRelatedVideo(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesBannersPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesSlides(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    article_title: Optional[str] = Field(alias="articleTitle")
    article_slug: Optional[str] = Field(alias="articleSlug")
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    colour: Optional[str]
    url: Optional[str]
    standfirst: Optional[str]
    link_url: Optional[str] = Field(alias="linkUrl")
    subtitle: Optional[str]
    title: Optional[str]
    video_url: Optional[str] = Field(alias="videoUrl")
    read_more_link: Optional[str] = Field(alias="readMoreLink")
    headline: Optional[str]
    strapline: Optional[str]
    read_more_text: Optional[str] = Field(alias="readMoreText")
    date: Optional[str]
    subheadline: Optional[str]


class GetPageGetPageContentModulesSections(BaseModel):
    title: Optional[str]
    show: Optional[bool]
    links: Optional[List[Optional["GetPageGetPageContentModulesSectionsLinks"]]]


class GetPageGetPageContentModulesSectionsLinks(BaseModel):
    name: Optional[str]
    url: Optional[str]
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional["GetPageGetPageContentModulesSectionsLinksPage"]
    file_id: Optional[List[Optional[str]]] = Field(alias="fileId")
    file: Optional[List[Optional["GetPageGetPageContentModulesSectionsLinksFile"]]]


class GetPageGetPageContentModulesSectionsLinksPage(BaseModel):
    id: Optional[str]
    type_id: Optional[str] = Field(alias="typeId")
    language: Optional[str]
    title: Optional[str]
    competition_id: Optional[str] = Field(alias="competitionId")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetPageGetPageContentModulesSectionsLinksPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetPageGetPageContentModulesSectionsLinksPageMinisite"]
    seo_description: Optional[str] = Field(alias="seoDescription")
    slug: Optional[str]
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[Any]
    content_modules: Optional[
        List[Optional["GetPageGetPageContentModulesSectionsLinksPageContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")
    no_index: Optional[bool] = Field(alias="noIndex")
    campaign_id: Optional[str] = Field(alias="campaignId")
    campaign: Optional["GetPageGetPageContentModulesSectionsLinksPageCampaign"]


class GetPageGetPageContentModulesSectionsLinksPageEvent(BaseModel):
    id: Optional[int]
    updated_on: Optional[Any] = Field(alias="updatedOn")
    name: Optional[str]
    start_date: Optional[Any] = Field(alias="startDate")
    end_date: Optional[Any] = Field(alias="endDate")
    hash: Optional[str]
    venue: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    area_code: Optional[str] = Field(alias="areaCode")
    area_name: Optional[str] = Field(alias="areaName")
    age_code: Optional[str] = Field(alias="ageCode")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    category_code: Optional[str] = Field(alias="categoryCode")
    category_name: Optional[str] = Field(alias="categoryName")
    category_order: Optional[int] = Field(alias="categoryOrder")
    sub_category_code: Optional[str] = Field(alias="subCategoryCode")
    sub_category_name: Optional[str] = Field(alias="subCategoryName")
    show_web_live_banner: Optional[bool] = Field(alias="showWebLiveBanner")
    sub_category_order: Optional[int] = Field(alias="subCategoryOrder")
    class_code: Optional[str] = Field(alias="classCode")
    class_order: Optional[int] = Field(alias="classOrder")
    is_published: Optional[bool] = Field(alias="isPublished")
    has_comp_doc_results: Optional[bool] = Field(alias="hasCompDocResults")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    start_date_year: Optional[int] = Field(alias="startDateYear")
    area_name_url_slug: Optional[str] = Field(alias="areaNameUrlSlug")
    category_name_url_slug: Optional[str] = Field(alias="categoryNameUrlSlug")
    sub_category_name_url_slug: Optional[str] = Field(alias="subCategoryNameUrlSlug")
    discipline_codes: Optional[List[Optional[str]]] = Field(alias="disciplineCodes")
    event_id_wa: Optional[int] = Field(alias="eventId_WA")
    has_timetable: Optional[bool] = Field(alias="hasTimetable")
    event_start_date_time: Optional[Any] = Field(alias="eventStartDateTime")
    event_end_date_time: Optional[Any] = Field(alias="eventEndDateTime")
    venue_timezone: Optional[str] = Field(alias="venueTimezone")
    banner_lead_time_in_hours: Optional[int] = Field(alias="bannerLeadTimeInHours")


class GetPageGetPageContentModulesSectionsLinksPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image_edited: Optional[str] = Field(alias="featureImageEdited")
    theme: Optional[str]
    default_sponsor_ids: Optional[List[Optional[str]]] = Field(
        alias="defaultSponsorIds"
    )
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    event_id: Optional[int] = Field(alias="eventId")
    primary_color: Optional[str] = Field(alias="primaryColor")
    secondary_color: Optional[str] = Field(alias="secondaryColor")
    tertiary_color: Optional[str] = Field(alias="tertiaryColor")
    additional_colours: Optional[List[Optional[str]]] = Field(alias="additionalColours")
    language_codes: Optional[List[Optional[str]]] = Field(alias="languageCodes")


class GetPageGetPageContentModulesSectionsLinksPageContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    language: Optional[str]
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    athlete_ids: Optional[List[Optional[str]]] = Field(alias="athleteIds")
    media_ids: List[Optional[str]] = Field(alias="mediaIds")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    location_id: Optional[str] = Field(alias="locationId")
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    description: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    tag_id: Optional[str] = Field(alias="tagId")
    more_news_link: Optional[str] = Field(alias="moreNewsLink")
    more_news_text: Optional[str] = Field(alias="moreNewsText")
    colour: Optional[str]
    image_edited: Optional[str] = Field(alias="imageEdited")
    text_position: Optional[str] = Field(alias="textPosition")
    text_colour: Optional[str] = Field(alias="textColour")
    title: Optional[str]
    top_title: Optional[str] = Field(alias="topTitle")
    bottom_title: Optional[str] = Field(alias="bottomTitle")
    subtitle: Optional[str]
    category: Optional[str]
    standfirst: Optional[str]
    url: Optional[str]
    button_text: Optional[str] = Field(alias="buttonText")
    image_position: Optional[str] = Field(alias="imagePosition")
    background_color: Optional[str] = Field(alias="backgroundColor")
    show_timestamp: Optional[bool] = Field(alias="showTimestamp")
    content: Optional[str]
    parent_id: Optional[str] = Field(alias="parentId")
    event_id_wa: Optional[int] = Field(alias="eventIdWa")
    layout: Optional[int]
    slug: Optional[str]
    video_ids: Optional[List[Optional[str]]] = Field(alias="videoIds")
    video_playlist_id: Optional[str] = Field(alias="videoPlaylistId")
    video_id: Optional[str] = Field(alias="videoId")


class GetPageGetPageContentModulesSectionsLinksPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


class GetPageGetPageContentModulesSectionsLinksFile(BaseModel):
    id: Optional[str]
    media_type: Optional[str] = Field(alias="mediaType")
    title: Optional[str]
    copyright: Optional[str]
    file_name: Optional[str] = Field(alias="fileName")
    related_athletes: Optional[List[Optional[int]]] = Field(alias="relatedAthletes")
    related_disciplines: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplines"
    )
    related_competitions: Optional[List[Optional[str]]] = Field(
        alias="relatedCompetitions"
    )
    related_events: Optional[List[Optional[int]]] = Field(alias="relatedEvents")
    is_deleted: Optional[bool] = Field(alias="isDeleted")
    live_from: Optional[Any] = Field(alias="liveFrom")


class GetPageGetPageContentModulesRelatedVideos(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageContentModulesRelatedVideo(BaseModel):
    id: Optional[str]
    content_id: Optional[str] = Field(alias="contentId")
    published_by_id: Optional[str] = Field(alias="publishedById")
    published_by_name: Optional[str] = Field(alias="publishedByName")
    published: Optional[str]
    language: Optional[str]
    gated_content: Optional[bool] = Field(alias="gatedContent")
    campaign_id: Optional[str] = Field(alias="campaignId")
    tags: Optional[List[Optional[str]]]
    title: Optional[str]
    thumbnail_id: Optional[str] = Field(alias="thumbnailId")
    thumbnail_edited: Optional[str] = Field(alias="thumbnailEdited")
    video_id: Optional[str] = Field(alias="videoId")
    player_id: Optional[str] = Field(alias="playerId")
    tag_id: Optional[str] = Field(alias="tagId")
    stand_first: Optional[str] = Field(alias="standFirst")
    signed_in_cta: Optional[str] = Field(alias="signedInCTA")
    signed_out_cta: Optional[str] = Field(alias="signedOutCTA")
    metatags: Optional[str]
    thumbnail_title: Optional[str] = Field(alias="thumbnailTitle")


class GetPageGetPageCampaign(BaseModel):
    id: Optional[str]
    name: Optional[str]
    tag: Optional[str]
    type: Optional[str]
    description: Optional[str]
    thank_you_message: Optional[str] = Field(alias="thankYouMessage")
    already_signed_message: Optional[str] = Field(alias="alreadySignedMessage")
    close_date: Optional[Any] = Field(alias="closeDate")
    redirect_url: Optional[str] = Field(alias="redirectUrl")
    tag_user_friendly_name: Optional[str] = Field(alias="tagUserFriendlyName")
    background_image_edited: Optional[str] = Field(alias="backgroundImageEdited")
    header_image_edited: Optional[str] = Field(alias="headerImageEdited")
    visible_on_preference_center: Optional[bool] = Field(
        alias="visibleOnPreferenceCenter"
    )
    short_form: Optional[bool] = Field(alias="shortForm")
    top_level_bucket_id: Optional[str] = Field(alias="topLevelBucketId")


GetPage.model_rebuild()
GetPageGetPage.model_rebuild()
GetPageGetPageEvent.model_rebuild()
GetPageGetPageEventPage.model_rebuild()
GetPageGetPageEventPageEvent.model_rebuild()
GetPageGetPageEventPageEventPage.model_rebuild()
GetPageGetPageEventPageMinisite.model_rebuild()
GetPageGetPageEventPageMinisiteDefaultSponsors.model_rebuild()
GetPageGetPageEventPageMinisiteSponsors.model_rebuild()
GetPageGetPageEventPageContentModules.model_rebuild()
GetPageGetPageEventPageContentModulesRelatedArticles.model_rebuild()
GetPageGetPageEventPageContentModulesRelatedEvents.model_rebuild()
GetPageGetPageEventPageContentModulesRelatedCompetitors.model_rebuild()
GetPageGetPageEventPageContentModulesMinisitePage.model_rebuild()
GetPageGetPageEventPageContentModulesMinisite.model_rebuild()
GetPageGetPageEventPageContentModulesLocations.model_rebuild()
GetPageGetPageEventPageContentModulesVideos.model_rebuild()
GetPageGetPageEventPageContentModulesBanners.model_rebuild()
GetPageGetPageEventPageContentModulesSections.model_rebuild()
GetPageGetPageMinisite.model_rebuild()
GetPageGetPageMinisiteDefaultSponsors.model_rebuild()
GetPageGetPageMinisiteSponsors.model_rebuild()
GetPageGetPageContentModules.model_rebuild()
GetPageGetPageContentModulesRelatedArticles.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesEvent.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesEventPage.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedCompetitors.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStats.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsTimetable.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedDisciplineStatsResults.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedCompetitions.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsNextEvent.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsLastEvent.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedCompetitionsPage.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedEvents.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedEventsPage.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticles.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticlesEvent.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitors.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedDisciplineStats.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedCompetitions.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedEvents.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedArticles.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePages.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedArticlesContentModules.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePages.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesEvent.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesMinisite.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesRelatedMinisitePagesContentModules.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesContentModules.model_rebuild()
GetPageGetPageContentModulesRelatedArticlesContentModulesLocations.model_rebuild()
GetPageGetPageContentModulesRelatedEvents.model_rebuild()
GetPageGetPageContentModulesRelatedEventsPage.model_rebuild()
GetPageGetPageContentModulesRelatedEventsPageEvent.model_rebuild()
GetPageGetPageContentModulesRelatedEventsPageMinisite.model_rebuild()
GetPageGetPageContentModulesRelatedEventsPageContentModules.model_rebuild()
GetPageGetPageContentModulesRelatedCompetitors.model_rebuild()
GetPageGetPageContentModulesMinisitePage.model_rebuild()
GetPageGetPageContentModulesMinisitePageEvent.model_rebuild()
GetPageGetPageContentModulesMinisitePageEventPage.model_rebuild()
GetPageGetPageContentModulesMinisitePageMinisite.model_rebuild()
GetPageGetPageContentModulesMinisitePageMinisiteDefaultSponsors.model_rebuild()
GetPageGetPageContentModulesMinisitePageMinisiteSponsors.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModules.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesRelatedArticles.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesRelatedEvents.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesRelatedCompetitors.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesMinisitePage.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesMinisite.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesLocations.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesVideos.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesBanners.model_rebuild()
GetPageGetPageContentModulesMinisitePageContentModulesSections.model_rebuild()
GetPageGetPageContentModulesMinisite.model_rebuild()
GetPageGetPageContentModulesMinisiteDefaultSponsors.model_rebuild()
GetPageGetPageContentModulesMinisiteSponsors.model_rebuild()
GetPageGetPageContentModulesLocations.model_rebuild()
GetPageGetPageContentModulesVideos.model_rebuild()
GetPageGetPageContentModulesBanners.model_rebuild()
GetPageGetPageContentModulesBannersPage.model_rebuild()
GetPageGetPageContentModulesBannersPageEvent.model_rebuild()
GetPageGetPageContentModulesBannersPageMinisite.model_rebuild()
GetPageGetPageContentModulesBannersPageContentModules.model_rebuild()
GetPageGetPageContentModulesSections.model_rebuild()
GetPageGetPageContentModulesSectionsLinks.model_rebuild()
GetPageGetPageContentModulesSectionsLinksPage.model_rebuild()
