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

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel


class GetNewArticle(BaseModel):
    get_new_article: Optional["GetNewArticleGetNewArticle"] = Field(
        alias="getNewArticle"
    )


class GetNewArticleGetNewArticle(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["GetNewArticleGetNewArticleRelatedMedia"]]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetNewArticleGetNewArticleEvent"]
    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["GetNewArticleGetNewArticleRelatedCompetitors"]]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedDiscipline"]]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_discipline_stats: Optional[
        "GetNewArticleGetNewArticleRelatedDisciplineStats"
    ] = Field(alias="relatedDisciplineStats")
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedCompetitions"]]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedEvents"]]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedArticles"]]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedMinisitePages"]]
    ] = 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["GetNewArticleGetNewArticleRelatedLinks"]]
    ] = 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["GetNewArticleGetNewArticleContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedMedia(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 GetNewArticleGetNewArticleEvent(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["GetNewArticleGetNewArticleEventCircuits"]]]
    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["GetNewArticleGetNewArticleEventPage"]
    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 GetNewArticleGetNewArticleEventCircuits(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 GetNewArticleGetNewArticleEventPage(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["GetNewArticleGetNewArticleEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetNewArticleGetNewArticleEventPageMinisite"]
    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["GetNewArticleGetNewArticleEventPageContentModules"]]
    ] = 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["GetNewArticleGetNewArticleEventPageCampaign"]


class GetNewArticleGetNewArticleEventPageEvent(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["GetNewArticleGetNewArticleEventPageEventCircuits"]]
    ]
    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["GetNewArticleGetNewArticleEventPageEventPage"]
    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 GetNewArticleGetNewArticleEventPageEventCircuits(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 GetNewArticleGetNewArticleEventPageEventPage(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["GetNewArticleGetNewArticleEventPageEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetNewArticleGetNewArticleEventPageEventPageMinisite"]
    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["GetNewArticleGetNewArticleEventPageEventPageContentModules"]]
    ] = 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["GetNewArticleGetNewArticleEventPageEventPageCampaign"]


class GetNewArticleGetNewArticleEventPageEventPageEvent(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 GetNewArticleGetNewArticleEventPageEventPageMinisite(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 GetNewArticleGetNewArticleEventPageEventPageContentModules(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 GetNewArticleGetNewArticleEventPageEventPageCampaign(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 GetNewArticleGetNewArticleEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetNewArticleGetNewArticleEventPageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleEventPageMinisiteFeatureImage"
    ] = 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["GetNewArticleGetNewArticleEventPageMinisiteDefaultSponsors"]]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageMinisiteSponsors"]]
    ]
    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 GetNewArticleGetNewArticleEventPageMinisiteLogo(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 GetNewArticleGetNewArticleEventPageMinisiteFeatureImage(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 GetNewArticleGetNewArticleEventPageMinisiteDefaultSponsors(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[
        "GetNewArticleGetNewArticleEventPageMinisiteDefaultSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleEventPageMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleEventPageMinisiteDefaultSponsorsLightBgLogo(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 GetNewArticleGetNewArticleEventPageMinisiteDefaultSponsorsDarkBgLogo(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 GetNewArticleGetNewArticleEventPageMinisiteSponsors(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[
        "GetNewArticleGetNewArticleEventPageMinisiteSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleEventPageMinisiteSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleEventPageMinisiteSponsorsLightBgLogo(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 GetNewArticleGetNewArticleEventPageMinisiteSponsorsDarkBgLogo(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 GetNewArticleGetNewArticleEventPageContentModules(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["GetNewArticleGetNewArticleEventPageContentModulesRelatedArticles"]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageContentModulesRelatedEvents"]]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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["GetNewArticleGetNewArticleEventPageContentModulesRelatedMedia"]]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional["GetNewArticleGetNewArticleEventPageContentModulesLifestyleLinks"]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageContentModulesFeatureLinks"]]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleEventPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional["GetNewArticleGetNewArticleEventPageContentModulesMinisite"]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageContentModulesLocations"]]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageContentModulesVideos"]]
    ]
    banners: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageContentModulesBanners"]]
    ]
    slides: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageContentModulesSlides"]]
    ]
    sections: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageContentModulesSections"]]
    ]
    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["GetNewArticleGetNewArticleEventPageContentModulesRelatedVideos"]]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleEventPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleEventPageContentModulesRelatedArticles(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[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesEvent"
    ]
    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[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedMedia(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesEvent(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 GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedCompetitors(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedCompetitions(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedEvents(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedArticles(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedMinisitePages(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleEventPageContentModulesRelatedArticlesContentModules(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedEvents(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[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedEventsCircuits"
            ]
        ]
    ]
    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["GetNewArticleGetNewArticleEventPageContentModulesRelatedEventsPage"]
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedEventsCircuits(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 GetNewArticleGetNewArticleEventPageContentModulesRelatedEventsPage(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 GetNewArticleGetNewArticleEventPageContentModulesRelatedCompetitors(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[
                "GetNewArticleGetNewArticleEventPageContentModulesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleEventPageContentModulesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleEventPageContentModulesRelatedDiscipline(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 GetNewArticleGetNewArticleEventPageContentModulesRelatedMedia(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 GetNewArticleGetNewArticleEventPageContentModulesLifestyleLinks(BaseModel):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleEventPageContentModulesMinisitePage(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[
        "GetNewArticleGetNewArticleEventPageContentModulesMinisitePageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleEventPageContentModulesMinisitePageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleEventPageContentModulesMinisitePageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleEventPageContentModulesMinisitePageCampaign"
    ]


class GetNewArticleGetNewArticleEventPageContentModulesMinisitePageEvent(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 GetNewArticleGetNewArticleEventPageContentModulesMinisitePageMinisite(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 GetNewArticleGetNewArticleEventPageContentModulesMinisitePageContentModules(
    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 GetNewArticleGetNewArticleEventPageContentModulesMinisitePageCampaign(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 GetNewArticleGetNewArticleEventPageContentModulesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetNewArticleGetNewArticleEventPageContentModulesMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleEventPageContentModulesMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleEventPageContentModulesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleEventPageContentModulesMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleEventPageContentModulesMinisiteLogo(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 GetNewArticleGetNewArticleEventPageContentModulesMinisiteFeatureImage(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 GetNewArticleGetNewArticleEventPageContentModulesMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleEventPageContentModulesMinisiteSponsors(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 GetNewArticleGetNewArticleEventPageContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional[
        "GetNewArticleGetNewArticleEventPageContentModulesLocationsLocation"
    ]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


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


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


class GetNewArticleGetNewArticleEventPageContentModulesVideosThumbnailImage(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 GetNewArticleGetNewArticleEventPageContentModulesBanners(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["GetNewArticleGetNewArticleEventPageContentModulesBannersPage"]


class GetNewArticleGetNewArticleEventPageContentModulesBannersPage(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 GetNewArticleGetNewArticleEventPageContentModulesSlides(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 GetNewArticleGetNewArticleEventPageContentModulesSections(BaseModel):
    title: Optional[str]
    show: Optional[bool]
    links: Optional[
        List[Optional["GetNewArticleGetNewArticleEventPageContentModulesSectionsLinks"]]
    ]


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


class GetNewArticleGetNewArticleEventPageContentModulesRelatedVideos(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 GetNewArticleGetNewArticleEventPageContentModulesRelatedVideo(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 GetNewArticleGetNewArticleEventPageCampaign(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 GetNewArticleGetNewArticleRelatedCompetitors(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["GetNewArticleGetNewArticleRelatedCompetitorsPrimaryMedia"]]
    ] = 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 GetNewArticleGetNewArticleRelatedCompetitorsPrimaryMedia(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 GetNewArticleGetNewArticleRelatedDiscipline(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 GetNewArticleGetNewArticleRelatedDisciplineStats(BaseModel):
    discipline: Optional["GetNewArticleGetNewArticleRelatedDisciplineStatsDiscipline"]
    season_best: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedDisciplineStatsSeasonBest"]]
    ] = Field(alias="seasonBest")
    previous_medalists: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedDisciplineStatsPreviousMedalists"
            ]
        ]
    ] = Field(alias="previousMedalists")
    records: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedDisciplineStatsRecords"]]
    ]
    timetable: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedDisciplineStatsTimetable"]]
    ]
    results: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedDisciplineStatsResults"]]
    ]


class GetNewArticleGetNewArticleRelatedDisciplineStatsDiscipline(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 GetNewArticleGetNewArticleRelatedDisciplineStatsSeasonBest(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 GetNewArticleGetNewArticleRelatedDisciplineStatsPreviousMedalists(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 GetNewArticleGetNewArticleRelatedDisciplineStatsRecords(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 GetNewArticleGetNewArticleRelatedDisciplineStatsTimetable(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[
        "GetNewArticleGetNewArticleRelatedDisciplineStatsTimetableDiscipline"
    ]
    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 GetNewArticleGetNewArticleRelatedDisciplineStatsTimetableDiscipline(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 GetNewArticleGetNewArticleRelatedDisciplineStatsResults(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["GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResults"]]
    ]
    start_list: Optional[
        List[
            Optional["GetNewArticleGetNewArticleRelatedDisciplineStatsResultsStartList"]
        ]
    ] = Field(alias="startList")


class GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResults(BaseModel):
    id: Optional[str]
    competitor: Optional[
        "GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResultsCompetitor"
    ]
    mark: Optional[str]
    nationality: Optional[str]
    place: Optional[str]
    points: Optional[int]
    qualified: Optional[bool]
    records: Optional[str]
    wind: Optional[str]
    remark: Optional[str]
    details: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResultsDetails"
            ]
        ]
    ]


class GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResultsCompetitor(
    BaseModel
):
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    id: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    birth_date: Optional[str] = Field(alias="birthDate")
    has_profile: Optional[bool] = Field(alias="hasProfile")
    team_members: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResultsCompetitorTeamMembers"
            ]
        ]
    ] = Field(alias="teamMembers")


class GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResultsCompetitorTeamMembers(
    BaseModel
):
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")


class GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResultsDetails(BaseModel):
    event: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    race_number: Optional[int] = Field(alias="raceNumber")
    mark: Optional[str]
    wind: Optional[str]
    place_in_round: Optional[int] = Field(alias="placeInRound")
    place_in_race: Optional[int] = Field(alias="placeInRace")
    points: Optional[int]
    overall_points: Optional[int] = Field(alias="overallPoints")
    place_in_round_by_points: Optional[int] = Field(alias="placeInRoundByPoints")
    overall_place_by_points: Optional[int] = Field(alias="overallPlaceByPoints")


class GetNewArticleGetNewArticleRelatedDisciplineStatsResultsStartList(BaseModel):
    competitor: Optional[
        "GetNewArticleGetNewArticleRelatedDisciplineStatsResultsStartListCompetitor"
    ]
    order: Optional[str]
    pb: Optional[str]
    sb: Optional[str]
    bib: Optional[str]


class GetNewArticleGetNewArticleRelatedDisciplineStatsResultsStartListCompetitor(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    id: Optional[str]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")


class GetNewArticleGetNewArticleRelatedCompetitions(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[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEvent"
    ] = Field(alias="nextEvent")
    last_event: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEvent"
    ] = Field(alias="lastEvent")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional["GetNewArticleGetNewArticleRelatedCompetitionsPage"]


class GetNewArticleGetNewArticleRelatedCompetitionsNextEvent(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["GetNewArticleGetNewArticleRelatedCompetitionsNextEventCircuits"]]
    ]
    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["GetNewArticleGetNewArticleRelatedCompetitionsNextEventPage"]
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventCircuits(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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPage(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["GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageEvent(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[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageEventCircuits(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageEventPage(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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisiteLogo(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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModules(
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesMinisitePage(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesMinisite(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesVideos(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesBanners(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesSlides(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageCampaign(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 GetNewArticleGetNewArticleRelatedCompetitionsLastEvent(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["GetNewArticleGetNewArticleRelatedCompetitionsLastEventCircuits"]]
    ]
    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["GetNewArticleGetNewArticleRelatedCompetitionsLastEventPage"]
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventCircuits(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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPage(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["GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageEvent(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[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageEventCircuits(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageEventPage(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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisiteLogo(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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModules(
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesMinisitePage(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesMinisite(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesVideos(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesBanners(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesSlides(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageCampaign(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 GetNewArticleGetNewArticleRelatedCompetitionsPage(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["GetNewArticleGetNewArticleRelatedCompetitionsPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetNewArticleGetNewArticleRelatedCompetitionsPageMinisite"]
    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["GetNewArticleGetNewArticleRelatedCompetitionsPageContentModules"]
        ]
    ] = 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["GetNewArticleGetNewArticleRelatedCompetitionsPageCampaign"]


class GetNewArticleGetNewArticleRelatedCompetitionsPageEvent(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["GetNewArticleGetNewArticleRelatedCompetitionsPageEventCircuits"]]
    ]
    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["GetNewArticleGetNewArticleRelatedCompetitionsPageEventPage"]
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageEventCircuits(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 GetNewArticleGetNewArticleRelatedCompetitionsPageEventPage(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["GetNewArticleGetNewArticleRelatedCompetitionsPageEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageEventPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageEventPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageEventPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedCompetitionsPageEventPageEvent(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 GetNewArticleGetNewArticleRelatedCompetitionsPageEventPageMinisite(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 GetNewArticleGetNewArticleRelatedCompetitionsPageEventPageContentModules(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageEventPageCampaign(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 GetNewArticleGetNewArticleRelatedCompetitionsPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteLogo(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 GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteFeatureImage(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 GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteDefaultSponsors(
    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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteDefaultSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteDefaultSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteDefaultSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteSponsors(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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModules(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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticles(
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesEvent"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesEvent(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedCompetitions(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedMinisitePages(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticlesContentModules(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedEvents(
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedEventsCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedEventsPage"
    ]
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedEventsCircuits(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedEventsPage(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedCompetitors(
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePage(
    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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePageEvent(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePageMinisite(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePageContentModules(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePageCampaign(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisiteLogo(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesLocations(
    BaseModel
):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesLocationsLocation"
    ]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


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


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


class GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesVideosThumbnailImage(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesBanners(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[
        "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesBannersPage"
    ]


class GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesBannersPage(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesSlides(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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]
    links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesSectionsLinks"
            ]
        ]
    ]


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


class GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedCompetitionsPageCampaign(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 GetNewArticleGetNewArticleRelatedEvents(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["GetNewArticleGetNewArticleRelatedEventsCircuits"]]
    ]
    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["GetNewArticleGetNewArticleRelatedEventsPage"]
    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 GetNewArticleGetNewArticleRelatedEventsCircuits(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 GetNewArticleGetNewArticleRelatedEventsPage(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["GetNewArticleGetNewArticleRelatedEventsPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetNewArticleGetNewArticleRelatedEventsPageMinisite"]
    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["GetNewArticleGetNewArticleRelatedEventsPageContentModules"]]
    ] = 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["GetNewArticleGetNewArticleRelatedEventsPageCampaign"]


class GetNewArticleGetNewArticleRelatedEventsPageEvent(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["GetNewArticleGetNewArticleRelatedEventsPageEventCircuits"]]
    ]
    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["GetNewArticleGetNewArticleRelatedEventsPageEventPage"]
    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 GetNewArticleGetNewArticleRelatedEventsPageEventCircuits(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 GetNewArticleGetNewArticleRelatedEventsPageEventPage(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["GetNewArticleGetNewArticleRelatedEventsPageEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetNewArticleGetNewArticleRelatedEventsPageEventPageMinisite"]
    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[
                "GetNewArticleGetNewArticleRelatedEventsPageEventPageContentModules"
            ]
        ]
    ] = 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["GetNewArticleGetNewArticleRelatedEventsPageEventPageCampaign"]


class GetNewArticleGetNewArticleRelatedEventsPageEventPageEvent(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 GetNewArticleGetNewArticleRelatedEventsPageEventPageMinisite(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 GetNewArticleGetNewArticleRelatedEventsPageEventPageContentModules(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 GetNewArticleGetNewArticleRelatedEventsPageEventPageCampaign(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 GetNewArticleGetNewArticleRelatedEventsPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetNewArticleGetNewArticleRelatedEventsPageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedEventsPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedEventsPageMinisiteSponsors"]]
    ]
    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 GetNewArticleGetNewArticleRelatedEventsPageMinisiteLogo(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 GetNewArticleGetNewArticleRelatedEventsPageMinisiteFeatureImage(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 GetNewArticleGetNewArticleRelatedEventsPageMinisiteDefaultSponsors(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[
        "GetNewArticleGetNewArticleRelatedEventsPageMinisiteDefaultSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedEventsPageMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedEventsPageMinisiteDefaultSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedEventsPageMinisiteDefaultSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedEventsPageMinisiteSponsors(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[
        "GetNewArticleGetNewArticleRelatedEventsPageMinisiteSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedEventsPageMinisiteSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedEventsPageMinisiteSponsorsLightBgLogo(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 GetNewArticleGetNewArticleRelatedEventsPageMinisiteSponsorsDarkBgLogo(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 GetNewArticleGetNewArticleRelatedEventsPageContentModules(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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional["GetNewArticleGetNewArticleRelatedEventsPageContentModulesVideos"]
        ]
    ]
    banners: Optional[
        List[
            Optional["GetNewArticleGetNewArticleRelatedEventsPageContentModulesBanners"]
        ]
    ]
    slides: Optional[
        List[
            Optional["GetNewArticleGetNewArticleRelatedEventsPageContentModulesSlides"]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticles(
    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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesEvent"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesEvent(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedCompetitions(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedMinisitePages(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticlesContentModules(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedEvents(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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedEventsCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedEventsPage"
    ]
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedEventsCircuits(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedEventsPage(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedCompetitors(
    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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedMedia(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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePage(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[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePageEvent(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePageMinisite(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePageContentModules(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePageCampaign(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisiteLogo(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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesLocationsLocation"
    ]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


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


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


class GetNewArticleGetNewArticleRelatedEventsPageContentModulesVideosThumbnailImage(
    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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesBanners(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[
        "GetNewArticleGetNewArticleRelatedEventsPageContentModulesBannersPage"
    ]


class GetNewArticleGetNewArticleRelatedEventsPageContentModulesBannersPage(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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesSlides(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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesSections(BaseModel):
    title: Optional[str]
    show: Optional[bool]
    links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedEventsPageContentModulesSectionsLinks"
            ]
        ]
    ]


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


class GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedVideos(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 GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedVideo(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 GetNewArticleGetNewArticleRelatedEventsPageCampaign(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 GetNewArticleGetNewArticleRelatedArticles(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["GetNewArticleGetNewArticleRelatedArticlesRelatedMedia"]]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetNewArticleGetNewArticleRelatedArticlesEvent"]
    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["GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitors"]]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedArticlesRelatedDiscipline"]]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_discipline_stats: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStats"
    ] = Field(alias="relatedDisciplineStats")
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitions"]]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedArticlesRelatedEvents"]]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedArticlesRelatedArticles"]]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePages"]]
    ] = 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["GetNewArticleGetNewArticleRelatedArticlesRelatedLinks"]]
    ] = 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["GetNewArticleGetNewArticleRelatedArticlesContentModules"]]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedArticlesRelatedMedia(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 GetNewArticleGetNewArticleRelatedArticlesEvent(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["GetNewArticleGetNewArticleRelatedArticlesEventCircuits"]]
    ]
    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["GetNewArticleGetNewArticleRelatedArticlesEventPage"]
    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 GetNewArticleGetNewArticleRelatedArticlesEventCircuits(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 GetNewArticleGetNewArticleRelatedArticlesEventPage(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["GetNewArticleGetNewArticleRelatedArticlesEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetNewArticleGetNewArticleRelatedArticlesEventPageMinisite"]
    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["GetNewArticleGetNewArticleRelatedArticlesEventPageContentModules"]
        ]
    ] = 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["GetNewArticleGetNewArticleRelatedArticlesEventPageCampaign"]


class GetNewArticleGetNewArticleRelatedArticlesEventPageEvent(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["GetNewArticleGetNewArticleRelatedArticlesEventPageEventCircuits"]
        ]
    ]
    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["GetNewArticleGetNewArticleRelatedArticlesEventPageEventPage"]
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageEventCircuits(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 GetNewArticleGetNewArticleRelatedArticlesEventPageEventPage(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 GetNewArticleGetNewArticleRelatedArticlesEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetNewArticleGetNewArticleRelatedArticlesEventPageMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesEventPageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageMinisiteLogo(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 GetNewArticleGetNewArticleRelatedArticlesEventPageMinisiteFeatureImage(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 GetNewArticleGetNewArticleRelatedArticlesEventPageMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageMinisiteSponsors(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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModules(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[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesMinisitePage(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesVideos(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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesBanners(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesSlides(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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedArticlesEventPageCampaign(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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitors(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedDiscipline(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 GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStats(BaseModel):
    discipline: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsDiscipline"
    ]
    season_best: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsSeasonBest"
            ]
        ]
    ] = Field(alias="seasonBest")
    previous_medalists: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsPreviousMedalists"
            ]
        ]
    ] = Field(alias="previousMedalists")
    records: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsRecords"
            ]
        ]
    ]
    timetable: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsTimetable"
            ]
        ]
    ]
    results: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResults"
            ]
        ]
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsSeasonBest(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsPreviousMedalists(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsRecords(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 GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsTimetable(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsTimetableDiscipline"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsTimetableDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResults(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsResults"
            ]
        ]
    ]
    start_list: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsStartList"
            ]
        ]
    ] = Field(alias="startList")


class GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsResults(
    BaseModel
):
    id: Optional[str]
    competitor: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsResultsCompetitor"
    ]
    mark: Optional[str]
    nationality: Optional[str]
    place: Optional[str]
    points: Optional[int]
    qualified: Optional[bool]
    records: Optional[str]
    wind: Optional[str]
    remark: Optional[str]
    details: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsResultsDetails"
            ]
        ]
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsResultsCompetitor(
    BaseModel
):
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    id: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    birth_date: Optional[str] = Field(alias="birthDate")
    has_profile: Optional[bool] = Field(alias="hasProfile")


class GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsResultsDetails(
    BaseModel
):
    event: Optional[str]
    event_id: Optional[int] = Field(alias="eventId")
    race_number: Optional[int] = Field(alias="raceNumber")
    mark: Optional[str]
    wind: Optional[str]
    place_in_round: Optional[int] = Field(alias="placeInRound")
    place_in_race: Optional[int] = Field(alias="placeInRace")
    points: Optional[int]
    overall_points: Optional[int] = Field(alias="overallPoints")
    place_in_round_by_points: Optional[int] = Field(alias="placeInRoundByPoints")
    overall_place_by_points: Optional[int] = Field(alias="overallPlaceByPoints")


class GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsStartList(
    BaseModel
):
    competitor: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsStartListCompetitor"
    ]
    order: Optional[str]
    pb: Optional[str]
    sb: Optional[str]
    bib: Optional[str]


class GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsStartListCompetitor(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    id: Optional[str]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")


class GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitions(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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEvent"
    ] = Field(alias="nextEvent")
    last_event: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEvent"
    ] = Field(alias="lastEvent")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional["GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPage"]


class GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEvent(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPage(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPageEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPageMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPageContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPageCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEvent(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPage(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPageEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPageMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPageContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPageCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPage(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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageEvent(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageEventPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisiteLogo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModules(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesMinisitePage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesBanners(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesSlides(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEvents(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["GetNewArticleGetNewArticleRelatedArticlesRelatedEventsCircuits"]]
    ]
    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["GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPage"]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsCircuits(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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPage(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["GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageEvent(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageEventPage(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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisiteLogo(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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModules(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesMinisitePage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesBanners(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesSlides(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageCampaign(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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticles(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional["GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEvent"]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_discipline_stats: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStats"
    ] = Field(alias="relatedDisciplineStats")
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMedia(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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEvent(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventCircuits"
            ]
        ]
    ]
    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["GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPage"]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventCircuits(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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPage(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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPageEvent(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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPageMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPageContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPageCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitors(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStats(
    BaseModel
):
    discipline: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsDiscipline"
    ]
    season_best: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsSeasonBest"
            ]
        ]
    ] = Field(alias="seasonBest")
    previous_medalists: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsPreviousMedalists"
            ]
        ]
    ] = Field(alias="previousMedalists")
    records: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsRecords"
            ]
        ]
    ]
    timetable: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetable"
            ]
        ]
    ]
    results: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsResults"
            ]
        ]
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsSeasonBest(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsPreviousMedalists(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsRecords(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetable(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetableDiscipline"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetableDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsResults(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsResultsResults"
            ]
        ]
    ]
    start_list: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsResultsStartList"
            ]
        ]
    ] = Field(alias="startList")


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsResultsResults(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsResultsStartList(
    BaseModel
):
    order: Optional[str]
    pb: Optional[str]
    sb: Optional[str]
    bib: Optional[str]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitions(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsNextEvent"
    ] = Field(alias="nextEvent")
    last_event: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsLastEvent"
    ] = Field(alias="lastEvent")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPage"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsNextEvent(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsNextEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsNextEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsNextEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsNextEventPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsLastEvent(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsLastEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsLastEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsLastEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsLastEventPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPage(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPageEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPageMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPageContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPageCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEvents(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPage(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPageEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPageMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPageContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPageCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticles(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesEvent"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_discipline_stats: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStats"
    ] = Field(alias="relatedDisciplineStats")
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesEvent(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesEventPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitors(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStats(
    BaseModel
):
    discipline: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsDiscipline"
    ]
    season_best: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsSeasonBest"
            ]
        ]
    ] = Field(alias="seasonBest")
    previous_medalists: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsPreviousMedalists"
            ]
        ]
    ] = Field(alias="previousMedalists")
    records: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsRecords"
            ]
        ]
    ]
    timetable: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetable"
            ]
        ]
    ]
    results: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsResults"
            ]
        ]
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsSeasonBest(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsPreviousMedalists(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsRecords(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetable(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStatsResults(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitions(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitionsNextEvent"
    ] = Field(alias="nextEvent")
    last_event: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitionsLastEvent"
    ] = Field(alias="lastEvent")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitionsPage"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitionsNextEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitionsLastEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitionsPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedEvents(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedEventsCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedEventsPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedEventsCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedEventsPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticles(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesEvent"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitions(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePages(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticlesContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePages(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePagesEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePagesCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePagesEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePagesCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModulesLocations"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")
    slug: Optional[str]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePages(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesEvent(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesEventPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisiteLogo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModules(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesMinisitePage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesBanners(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesSlides(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedLinks(BaseModel):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModulesLocations"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")
    slug: Optional[str]


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


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


class GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePages(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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEvent(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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPage(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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPageEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPageMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPageContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPageCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteLogo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsors(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteSponsors(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModules(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticles(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesEvent"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitions(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePages(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticlesContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedEvents(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedEventsCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedEventsPage"
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedEventsCircuits(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedEventsPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitors(
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePage(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePageEvent(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePageMinisite(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePageContentModules(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePageCampaign(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisiteLogo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesLocations(
    BaseModel
):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesLocationsLocation"
    ]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


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


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


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesVideosThumbnailImage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesBanners(
    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[
        "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesBannersPage"
    ]


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesBannersPage(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesSlides(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]
    links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesSectionsLinks"
            ]
        ]
    ]


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


class GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesCampaign(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 GetNewArticleGetNewArticleRelatedArticlesRelatedLinks(BaseModel):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedArticlesContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    locations: Optional[
        List[
            Optional["GetNewArticleGetNewArticleRelatedArticlesContentModulesLocations"]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedArticlesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedArticlesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")
    slug: Optional[str]


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


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


class GetNewArticleGetNewArticleRelatedArticlesContentModulesRelatedVideos(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 GetNewArticleGetNewArticleRelatedArticlesContentModulesRelatedVideo(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 GetNewArticleGetNewArticleRelatedMinisitePages(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["GetNewArticleGetNewArticleRelatedMinisitePagesEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional["GetNewArticleGetNewArticleRelatedMinisitePagesMinisite"]
    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["GetNewArticleGetNewArticleRelatedMinisitePagesContentModules"]]
    ] = 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["GetNewArticleGetNewArticleRelatedMinisitePagesCampaign"]


class GetNewArticleGetNewArticleRelatedMinisitePagesEvent(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["GetNewArticleGetNewArticleRelatedMinisitePagesEventCircuits"]]
    ]
    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["GetNewArticleGetNewArticleRelatedMinisitePagesEventPage"]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventCircuits(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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPage(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["GetNewArticleGetNewArticleRelatedMinisitePagesEventPageEvent"]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesEventPageEvent(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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageEventCircuits"
            ]
        ]
    ]
    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["GetNewArticleGetNewArticleRelatedMinisitePagesEventPageEventPage"]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageEventCircuits(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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageEventPage(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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisiteLogo(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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModules(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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesMinisitePage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesMinisite(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesVideos(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesBanners(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesSlides(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesEventPageCampaign(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 GetNewArticleGetNewArticleRelatedMinisitePagesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional["GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteLogo"]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[Optional["GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteSponsors"]]
    ]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteLogo(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 GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteFeatureImage(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 GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteDefaultSponsors(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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteDefaultSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteDefaultSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteDefaultSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteSponsors(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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModules(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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticles(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesEvent"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = Field(alias="relatedDiscipline")
    related_discipline_codes_with_sex: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodesWithSex"
    )
    related_discipline_stats: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStats"
    ] = Field(alias="relatedDisciplineStats")
    related_competition_ids: List[Optional[str]] = Field(alias="relatedCompetitionIds")
    related_competitions: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesEvent(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesEventCircuits(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesEventPage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitors(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStats(
    BaseModel
):
    discipline: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsDiscipline"
    ]
    season_best: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsSeasonBest"
            ]
        ]
    ] = Field(alias="seasonBest")
    previous_medalists: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsPreviousMedalists"
            ]
        ]
    ] = Field(alias="previousMedalists")
    records: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsRecords"
            ]
        ]
    ]
    timetable: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsTimetable"
            ]
        ]
    ]
    results: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsResults"
            ]
        ]
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsDiscipline(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsSeasonBest(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsPreviousMedalists(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsRecords(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsTimetable(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStatsResults(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitions(
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitionsNextEvent"
    ] = Field(alias="nextEvent")
    last_event: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitionsLastEvent"
    ] = Field(alias="lastEvent")
    next_event_start_date: Optional[Any] = Field(alias="nextEventStartDate")
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitionsPage"
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitionsNextEvent(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitionsLastEvent(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitionsPage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedEvents(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedEventsCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedEventsPage"
    ]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedEventsCircuits(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedEventsPage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticles(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    event_id: Optional[int] = Field(alias="eventId")
    event: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesEvent"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: List[Optional[str]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedCompetitions"
            ]
        ]
    ] = Field(alias="relatedCompetitions")
    related_event_ids: List[Optional[int]] = Field(alias="relatedEventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_article_ids: List[Optional[str]] = Field(alias="relatedArticleIds")
    related_articles: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    related_minisite_ids: Optional[List[Optional[str]]] = Field(
        alias="relatedMinisiteIds"
    )
    related_minisite_pages: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePages"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedLinks"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesContentModules"
            ]
        ]
    ] = Field(alias="contentModules")
    gated_content: Optional[bool] = Field(alias="gatedContent")


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesEvent(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedCompetitions(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedMinisitePages(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticlesContentModules(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePages(
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePagesEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePagesMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePagesContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePagesCampaign"
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePagesEvent(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePagesMinisite(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePagesContentModules(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePagesCampaign(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedLinks(
    BaseModel
):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModules(
    BaseModel
):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModulesLocations"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")
    slug: Optional[str]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEvents(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPage"
    ]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsCircuits(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPage(
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPageEvent(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPageMinisite(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPageContentModules(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPageCampaign(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedCompetitors(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedCompetitorsPrimaryMedia"
            ]
        ]
    ] = 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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedCompetitorsPrimaryMedia(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePage(
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageEvent(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageEventCircuits"
            ]
        ]
    ]
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageEventPage"
    ]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageEventCircuits(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageEventPage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisite(
    BaseModel
):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisiteLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisiteDefaultSponsors(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisiteSponsors(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModules(
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedArticles"
            ]
        ]
    ] = Field(alias="relatedArticles")
    event_ids: List[Optional[int]] = Field(alias="eventIds")
    related_events: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedEvents"
            ]
        ]
    ] = Field(alias="relatedEvents")
    related_competitor_ids: List[Optional[int]] = Field(alias="relatedCompetitorIds")
    related_competitors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedCompetitors"
            ]
        ]
    ] = Field(alias="relatedCompetitors")
    related_discipline_codes: Optional[List[Optional[str]]] = Field(
        alias="relatedDisciplineCodes"
    )
    related_discipline: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedDiscipline"
            ]
        ]
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedMedia"
            ]
        ]
    ] = Field(alias="relatedMedia")
    social_links: Optional[List[Optional[str]]] = Field(alias="socialLinks")
    lifestyle_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesLifestyleLinks"
            ]
        ]
    ] = Field(alias="lifestyleLinks")
    feature_links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesFeatureLinks"
            ]
        ]
    ] = Field(alias="featureLinks")
    minisite_id: Optional[str] = Field(alias="minisiteId")
    minisite_page: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesMinisitePage"
    ] = Field(alias="minisitePage")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesMinisite"
    ]
    location_id: Optional[str] = Field(alias="locationId")
    locations: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesLocations"
            ]
        ]
    ]
    event_id: Optional[int] = Field(alias="eventId")
    tags: Optional[List[Optional[str]]]
    videos: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesVideos"
            ]
        ]
    ]
    banners: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesBanners"
            ]
        ]
    ]
    slides: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesSlides"
            ]
        ]
    ]
    sections: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesSections"
            ]
        ]
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedVideos"
            ]
        ]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    related_video: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedArticles(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedEvents(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedCompetitors(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedDiscipline(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedMedia(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesLifestyleLinks(
    BaseModel
):
    article_id: Optional[str] = Field(alias="articleId")
    title: Optional[str]
    subtitle: Optional[str]
    url: Optional[str]


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


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesMinisitePage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesMinisite(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesLocations(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesVideos(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesBanners(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesSlides(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesSections(
    BaseModel
):
    title: Optional[str]
    show: Optional[bool]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageCampaign(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisite(BaseModel):
    id: Optional[str]
    name: Optional[str]
    logo_id: Optional[str] = Field(alias="logoId")
    logo: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteLogo"
    ]
    logo_edited: Optional[str] = Field(alias="logoEdited")
    feature_image_id: Optional[str] = Field(alias="featureImageId")
    feature_image: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteFeatureImage"
    ] = 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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteDefaultSponsors"
            ]
        ]
    ] = Field(alias="defaultSponsors")
    sponsor_ids: Optional[List[Optional[str]]] = Field(alias="sponsorIds")
    sponsors: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteSponsors"
            ]
        ]
    ]
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteFeatureImage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteDefaultSponsors(
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteDefaultSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteDefaultSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteDefaultSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteDefaultSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteSponsors(
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteSponsorsLightBgLogo"
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteSponsorsDarkBgLogo"
    ] = Field(alias="darkBgLogo")
    dark_bg_logo_edited: Optional[str] = Field(alias="darkBgLogoEdited")


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteSponsorsLightBgLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteSponsorsDarkBgLogo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesLocations(BaseModel):
    location_id: Optional[str] = Field(alias="locationId")
    location: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesLocationsLocation"
    ]
    headline: Optional[str]
    description: Optional[str]
    link: Optional[str]
    image_id: Optional[str] = Field(alias="imageId")
    image_edited: Optional[str] = Field(alias="imageEdited")


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


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


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesVideosThumbnailImage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBanners(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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPage"
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPage(
    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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPageEvent"
    ]
    site_id: Optional[str] = Field(alias="siteId")
    minisite: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPageMinisite"
    ]
    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[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPageContentModules"
            ]
        ]
    ] = 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[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPageCampaign"
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPageEvent(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPageMinisite(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPageContentModules(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPageCampaign(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSlides(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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSections(BaseModel):
    title: Optional[str]
    show: Optional[bool]
    links: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSectionsLinks"
            ]
        ]
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSectionsLinks(
    BaseModel
):
    name: Optional[str]
    url: Optional[str]
    page_id: Optional[str] = Field(alias="pageId")
    page: Optional[
        "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSectionsLinksPage"
    ]
    file_id: Optional[List[Optional[str]]] = Field(alias="fileId")
    file: Optional[
        List[
            Optional[
                "GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSectionsLinksFile"
            ]
        ]
    ]


class GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSectionsLinksPage(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSectionsLinksFile(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedVideos(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedVideo(
    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 GetNewArticleGetNewArticleRelatedMinisitePagesCampaign(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 GetNewArticleGetNewArticleRelatedLinks(BaseModel):
    display_text: Optional[str] = Field(alias="displayText")
    url: Optional[str]


class GetNewArticleGetNewArticleContentModules(BaseModel):
    module_type: Optional[str] = Field(alias="moduleType")
    title: Optional[str]
    background_color: Optional[str] = Field(alias="backgroundColor")
    locations: Optional[
        List[Optional["GetNewArticleGetNewArticleContentModulesLocations"]]
    ]
    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["GetNewArticleGetNewArticleContentModulesRelatedVideos"]]
    ] = Field(alias="relatedVideos")
    video_id: Optional[str] = Field(alias="videoId")
    tag_id: Optional[str] = Field(alias="tagId")
    related_video: Optional[
        "GetNewArticleGetNewArticleContentModulesRelatedVideo"
    ] = Field(alias="relatedVideo")
    slug: Optional[str]


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


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


class GetNewArticleGetNewArticleContentModulesRelatedVideos(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 GetNewArticleGetNewArticleContentModulesRelatedVideo(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")


GetNewArticle.model_rebuild()
GetNewArticleGetNewArticle.model_rebuild()
GetNewArticleGetNewArticleEvent.model_rebuild()
GetNewArticleGetNewArticleEventPage.model_rebuild()
GetNewArticleGetNewArticleEventPageEvent.model_rebuild()
GetNewArticleGetNewArticleEventPageEventPage.model_rebuild()
GetNewArticleGetNewArticleEventPageMinisite.model_rebuild()
GetNewArticleGetNewArticleEventPageMinisiteDefaultSponsors.model_rebuild()
GetNewArticleGetNewArticleEventPageMinisiteSponsors.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModules.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesMinisitePage.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesMinisite.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesLocations.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesVideos.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesBanners.model_rebuild()
GetNewArticleGetNewArticleEventPageContentModulesSections.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedDisciplineStats.model_rebuild()
GetNewArticleGetNewArticleRelatedDisciplineStatsTimetable.model_rebuild()
GetNewArticleGetNewArticleRelatedDisciplineStatsResults.model_rebuild()
GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResults.model_rebuild()
GetNewArticleGetNewArticleRelatedDisciplineStatsResultsResultsCompetitor.model_rebuild()
GetNewArticleGetNewArticleRelatedDisciplineStatsResultsStartList.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitions.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsNextEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsNextEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsNextEventPageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsLastEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsLastEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsLastEventPageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPage.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteDefaultSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageMinisiteSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisitePage.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesLocations.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesVideos.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesBanners.model_rebuild()
GetNewArticleGetNewArticleRelatedCompetitionsPageContentModulesSections.model_rebuild()
GetNewArticleGetNewArticleRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPage.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageMinisiteDefaultSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageMinisiteSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisitePage.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesLocations.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesVideos.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesBanners.model_rebuild()
GetNewArticleGetNewArticleRelatedEventsPageContentModulesSections.model_rebuild()
GetNewArticleGetNewArticleRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesEventPageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesEventPageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesEventPageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStats.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsTimetable.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResults.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsResults.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedDisciplineStatsResultsStartList.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitions.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsNextEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsLastEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedCompetitionsPageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedEventsPageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStats.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsTimetable.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedDisciplineStatsResults.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitions.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsNextEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsLastEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedCompetitionsPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedEventsPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedDisciplineStats.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedCompetitions.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesRelatedMinisitePages.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedArticlesContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePages.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesRelatedMinisitePagesContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedArticlesContentModulesLocations.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePages.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteDefaultSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesMinisiteSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisitePage.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesLocations.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesVideos.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesBanners.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesRelatedMinisitePagesContentModulesSections.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedArticlesContentModulesLocations.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePages.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesEventPage.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesEventPageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesEventPageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesEventPageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteDefaultSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesMinisiteSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedDisciplineStats.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedCompetitions.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedArticles.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesRelatedMinisitePages.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedArticlesContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEvents.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedEventsPage.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesRelatedCompetitors.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePage.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageEvent.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisitePageContentModules.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisite.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteDefaultSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesMinisiteSponsors.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesLocations.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesVideos.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBanners.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesBannersPage.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSections.model_rebuild()
GetNewArticleGetNewArticleRelatedMinisitePagesContentModulesSectionsLinks.model_rebuild()
GetNewArticleGetNewArticleContentModules.model_rebuild()
GetNewArticleGetNewArticleContentModulesLocations.model_rebuild()
