# Generated by ariadne-codegen on 2023-06-06 10:49
# Source: graphql/queries.graphql

from typing import 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")
    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")


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponents(
    BaseModel
):
    competitor_wins: Optional[int] = Field(alias="competitorWins")
    opponent_wins: Optional[int] = Field(alias="opponentWins")


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


class GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitors(
    BaseModel
):
    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 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")
    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")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")


GetChampionshipHighlights.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlights.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsDays.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRounds.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecords.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsChampionshipRecordsCompetitor.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHead.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadCompetitor.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHeadToHeadOpponents.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlights.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsHighlightsCompetitors.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalists.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsPastMedalistsCompetitor.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecords.update_forward_refs()
GetChampionshipHighlightsGetChampionshipHighlightsRoundsWorldRecordsCompetitor.update_forward_refs()
