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

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel


class GetChampionshipHighlights(BaseModel):
    get_championship_highlights: Optional[
        "GetChampionshipHighlightsGetChampionshipHighlights"
    ] = Field(alias="getChampionshipHighlights")


class GetChampionshipHighlightsGetChampionshipHighlights(BaseModel):
    days: Optional[
        List[Optional["GetChampionshipHighlightsGetChampionshipHighlightsDays"]]
    ]
    rounds: Optional[
        List[Optional["GetChampionshipHighlightsGetChampionshipHighlightsRounds"]]
    ]


class GetChampionshipHighlightsGetChampionshipHighlightsDays(BaseModel):
    date: Optional[str]
    day: Optional[int]


class GetChampionshipHighlightsGetChampionshipHighlightsRounds(BaseModel):
    championship_records: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecords"
            ]
        ]
    ] = Field(alias="championshipRecords")
    environment: Optional[str]
    event: Optional[str]
    event_type: Optional[str] = Field(alias="eventType")
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    head_to_head: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHead"
            ]
        ]
    ] = Field(alias="headToHead")
    highlights: Optional[
        "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlights"
    ]
    past_medalists: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalists"
            ]
        ]
    ] = Field(alias="pastMedalists")
    round: Optional[str]
    sex: Optional[str]
    time: Optional[str]
    title: Optional[str]
    world_records: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecords"
            ]
        ]
    ] = Field(alias="worldRecords")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecords(
    BaseModel
):
    defending_champion: Optional[bool] = Field(alias="defendingChampion")
    equal: Optional[bool]
    mark: Optional[str]
    pending: Optional[bool]
    competitor: Optional[
        "GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitor"
    ]
    year: Optional[str]


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitor(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    team_members: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitorTeamMembers"
            ]
        ]
    ] = Field(alias="teamMembers")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitorTeamMembers(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    team_members: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitorTeamMembersTeamMembers"
            ]
        ]
    ] = Field(alias="teamMembers")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitorTeamMembersTeamMembers(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHead(BaseModel):
    competitor: Optional[
        "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadCompetitor"
    ]
    opponents: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponents"
            ]
        ]
    ]


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadCompetitor(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    primary_media_id: Optional[List[Optional[str]]] = Field(alias="primaryMediaId")
    primary_media: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadCompetitorPrimaryMedia"
            ]
        ]
    ] = Field(alias="primaryMedia")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadCompetitorPrimaryMedia(
    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 GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponents(
    BaseModel
):
    competitor_wins: Optional[int] = Field(alias="competitorWins")
    opponent: Optional[
        "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponentsOpponent"
    ]
    opponent_wins: Optional[int] = Field(alias="opponentWins")
    results: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponentsResults"
            ]
        ]
    ]


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponentsOpponent(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    primary_media_id: Optional[List[Optional[str]]] = Field(alias="primaryMediaId")
    primary_media: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponentsOpponentPrimaryMedia"
            ]
        ]
    ] = Field(alias="primaryMedia")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponentsOpponentPrimaryMedia(
    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 GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponentsResults(
    BaseModel
):
    competition_id: Optional[int] = Field(alias="competitionId")
    competitor_mark: Optional[str] = Field(alias="competitorMark")
    competitor_place: Optional[int] = Field(alias="competitorPlace")
    event_id: Optional[int] = Field(alias="eventId")
    opponent_mark: Optional[str] = Field(alias="opponentMark")
    opponent_place: Optional[int] = Field(alias="opponentPlace")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlights(BaseModel):
    competitors: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitors"
            ]
        ]
    ]
    label: Optional[str]


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitors(
    BaseModel
):
    competitor: Optional[
        "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitorsCompetitor"
    ]
    mark: Optional[str]
    place: Optional[int]
    name: Optional[str]
    country: Optional[str]
    world_lead_holder: Optional[bool] = Field(alias="worldLeadHolder")
    world_record_label: Optional[str] = Field(alias="worldRecordLabel")
    personal_best: Optional[str] = Field(alias="personalBest")
    seasons_best: Optional[str] = Field(alias="seasonsBest")
    world_ranking_position: Optional[str] = Field(alias="worldRankingPosition")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitorsCompetitor(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    team_members: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitorsCompetitorTeamMembers"
            ]
        ]
    ] = Field(alias="teamMembers")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitorsCompetitorTeamMembers(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalists(BaseModel):
    competitor: Optional[
        "GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitor"
    ]
    place: Optional[int]
    mark: Optional[str]


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitor(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    team_members: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitorTeamMembers"
            ]
        ]
    ] = Field(alias="teamMembers")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitorTeamMembers(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    team_members: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitorTeamMembersTeamMembers"
            ]
        ]
    ] = Field(alias="teamMembers")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitorTeamMembersTeamMembers(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecords(BaseModel):
    competitor: Optional[
        "GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitor"
    ]
    equal: Optional[bool]
    mark: Optional[str]
    pending: Optional[bool]
    year: Optional[str]


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitor(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    team_members: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitorTeamMembers"
            ]
        ]
    ] = Field(alias="teamMembers")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitorTeamMembers(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    team_members: Optional[
        List[
            Optional[
                "GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitorTeamMembersTeamMembers"
            ]
        ]
    ] = Field(alias="teamMembers")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitorTeamMembersTeamMembers(
    BaseModel
):
    birth_date: Optional[str] = Field(alias="birthDate")
    country: Optional[str]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    id: Optional[int]
    name: Optional[str]
    url_slug: Optional[str] = Field(alias="urlSlug")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


GetChampionshipHighlights.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlights.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRounds.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecords.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitor.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitorTeamMembers.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHead.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadCompetitor.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponents.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponentsOpponent.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlights.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitors.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitorsCompetitor.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalists.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitor.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitorTeamMembers.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecords.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitor.model_rebuild()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitorTeamMembers.model_rebuild()
