# 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 GetCISSingleCompetitor(BaseModel):
    get_c_i_s_single_competitor: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitor"
    ] = Field(alias="getCISSingleCompetitor")


class GetCISSingleCompetitorGetCISSingleCompetitor(BaseModel):
    basic_data: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorBasicData"
    ] = Field(alias="basicData")
    personal_bests: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorPersonalBests"
    ] = Field(alias="personalBests")
    seasons_bests: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBests"
    ] = Field(alias="seasonsBests")
    progression_of_seasons_bests: Optional[
        List[
            Optional[
                "GetCISSingleCompetitorGetCISSingleCompetitorProgressionOfSeasonsBests"
            ]
        ]
    ] = Field(alias="progressionOfSeasonsBests")
    world_rankings: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorWorldRankings"
    ] = Field(alias="worldRankings")
    honours: Optional[
        List[Optional["GetCISSingleCompetitorGetCISSingleCompetitorHonours"]]
    ]
    results_by_year: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorResultsByYear"
    ] = Field(alias="resultsByYear")
    results_by_date: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorResultsByDate"
    ] = Field(alias="resultsByDate")
    primary_media_id: Optional[str] = Field(alias="primaryMediaId")
    athlete_representative: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorAthleteRepresentative"
    ] = Field(alias="athleteRepresentative")
    road_race_label_status: Optional[
        List[
            Optional["GetCISSingleCompetitorGetCISSingleCompetitorRoadRaceLabelStatus"]
        ]
    ] = Field(alias="roadRaceLabelStatus")


class GetCISSingleCompetitorGetCISSingleCompetitorBasicData(BaseModel):
    first_name: Optional[str] = Field(alias="firstName")
    last_name: Optional[str] = Field(alias="lastName")
    sex_name: Optional[str] = Field(alias="sexName")
    country_name: Optional[str] = Field(alias="countryName")
    country_code: Optional[str] = Field(alias="countryCode")
    country_url_slug: Optional[str] = Field(alias="countryUrlSlug")
    birth_date: Optional[str] = Field(alias="birthDate")
    birth_date_str: Optional[str] = Field(alias="birthDateStr")
    butlers_bio: Optional[str] = Field(alias="butlersBio")
    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")
    iaaf_id: Optional[int] = Field(alias="iaafId")
    aa_id: Optional[int] = Field(alias="aaId")


class GetCISSingleCompetitorGetCISSingleCompetitorPersonalBests(BaseModel):
    with_wind: Optional[bool] = Field(alias="withWind")
    with_records: Optional[bool] = Field(alias="withRecords")
    results: Optional[
        List[
            Optional["GetCISSingleCompetitorGetCISSingleCompetitorPersonalBestsResults"]
        ]
    ]


class GetCISSingleCompetitorGetCISSingleCompetitorPersonalBestsResults(BaseModel):
    indoor: Optional[bool]
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    discipline_name_url_slug: Optional[str] = Field(alias="disciplineNameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")
    discipline: Optional[str]
    link_to_list: Optional[bool] = Field(alias="linkToList")
    mark: Optional[str]
    combined_performances: Optional[str] = Field(alias="combinedPerformances")
    wind: Optional[str]
    not_legal: Optional[bool] = Field(alias="notLegal")
    venue: Optional[str]
    date: Optional[str]
    list_position: Optional[str] = Field(alias="listPosition")
    result_score: Optional[int] = Field(alias="resultScore")


class GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBests(BaseModel):
    parameters: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBestsParameters"
    ]
    active_seasons: Optional[List[Optional[str]]] = Field(alias="activeSeasons")
    with_wind: Optional[bool] = Field(alias="withWind")
    with_records: Optional[bool] = Field(alias="withRecords")
    results: Optional[
        List[
            Optional["GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBestsResults"]
        ]
    ]


class GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBestsParameters(BaseModel):
    seasons_bests_season: Optional[int] = Field(alias="seasonsBestsSeason")


class GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBestsResults(BaseModel):
    indoor: Optional[bool]
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    discipline_name_url_slug: Optional[str] = Field(alias="disciplineNameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")
    discipline: Optional[str]
    link_to_list: Optional[bool] = Field(alias="linkToList")
    mark: Optional[str]
    combined_performances: Optional[str] = Field(alias="combinedPerformances")
    wind: Optional[str]
    not_legal: Optional[bool] = Field(alias="notLegal")
    venue: Optional[str]
    date: Optional[str]
    list_position: Optional[str] = Field(alias="listPosition")
    result_score: Optional[int] = Field(alias="resultScore")


class GetCISSingleCompetitorGetCISSingleCompetitorProgressionOfSeasonsBests(BaseModel):
    indoor: Optional[bool]
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    discipline_name_url_slug: Optional[str] = Field(alias="disciplineNameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")
    discipline: Optional[str]
    with_wind: Optional[bool] = Field(alias="withWind")
    main_event: Optional[bool] = Field(alias="mainEvent")
    results: Optional[
        List[
            Optional[
                "GetCISSingleCompetitorGetCISSingleCompetitorProgressionOfSeasonsBestsResults"
            ]
        ]
    ]


class GetCISSingleCompetitorGetCISSingleCompetitorProgressionOfSeasonsBestsResults(
    BaseModel
):
    season: Optional[str]
    numeric_result: Optional[float] = Field(alias="numericResult")
    mark: Optional[str]
    wind: Optional[str]
    venue: Optional[str]
    date: Optional[str]
    list_position: Optional[int] = Field(alias="listPosition")
    result_score: Optional[int] = Field(alias="resultScore")


class GetCISSingleCompetitorGetCISSingleCompetitorWorldRankings(BaseModel):
    parameters: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsParameters"
    ]
    current: Optional[
        List[
            Optional["GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsCurrent"]
        ]
    ]
    best: Optional[
        List[Optional["GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsBest"]]
    ]


class GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsParameters(BaseModel):
    world_rankings_progression_year: Optional[int] = Field(
        alias="worldRankingsProgressionYear"
    )


class GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsCurrent(BaseModel):
    ranking_calculation_id: Optional[str] = Field(alias="rankingCalculationId")
    event_group: Optional[str] = Field(alias="eventGroup")
    male: Optional[bool]
    url_slug: Optional[str] = Field(alias="urlSlug")
    place: Optional[int]
    ranking_score: Optional[int] = Field(alias="rankingScore")


class GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsBest(BaseModel):
    event_group: Optional[str] = Field(alias="eventGroup")
    event_group_id: Optional[int] = Field(alias="eventGroupId")
    url_slug: Optional[str] = Field(alias="urlSlug")
    place: Optional[str]
    weeks: Optional[int]


class GetCISSingleCompetitorGetCISSingleCompetitorHonours(BaseModel):
    category_name: Optional[str] = Field(alias="categoryName")
    with_wind: Optional[bool] = Field(alias="withWind")
    with_drop: Optional[bool] = Field(alias="withDrop")
    results: Optional[
        List[Optional["GetCISSingleCompetitorGetCISSingleCompetitorHonoursResults"]]
    ]


class GetCISSingleCompetitorGetCISSingleCompetitorHonoursResults(BaseModel):
    place: Optional[str]
    indoor: Optional[bool]
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    discipline_name_url_slug: Optional[str] = Field(alias="disciplineNameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")
    discipline: Optional[str]
    competition: Optional[str]
    venue: Optional[str]
    mark: Optional[str]
    wind: Optional[str]
    date: Optional[str]


class GetCISSingleCompetitorGetCISSingleCompetitorResultsByYear(BaseModel):
    parameters: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearParameters"
    ]
    active_years: Optional[List[Optional[str]]] = Field(alias="activeYears")
    results_by_event: Optional[
        List[
            Optional[
                "GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearResultsByEvent"
            ]
        ]
    ] = Field(alias="resultsByEvent")


class GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearParameters(BaseModel):
    results_by_year: Optional[int] = Field(alias="resultsByYear")
    results_by_year_order_by: Optional[str] = Field(alias="resultsByYearOrderBy")


class GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearResultsByEvent(
    BaseModel
):
    indoor: Optional[bool]
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    discipline_name_url_slug: Optional[str] = Field(alias="disciplineNameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")
    discipline: Optional[str]
    with_wind: Optional[bool] = Field(alias="withWind")
    with_remark: Optional[bool] = Field(alias="withRemark")
    results: Optional[
        List[
            Optional[
                "GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearResultsByEventResults"
            ]
        ]
    ]


class GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearResultsByEventResults(
    BaseModel
):
    date: Optional[str]
    competition: Optional[str]
    venue: Optional[str]
    country: Optional[str]
    category: Optional[str]
    race: Optional[str]
    place: Optional[str]
    mark: Optional[str]
    wind: Optional[str]
    not_legal: Optional[bool] = Field(alias="notLegal")
    result_score: Optional[int] = Field(alias="resultScore")
    remark: Optional[str]


class GetCISSingleCompetitorGetCISSingleCompetitorResultsByDate(BaseModel):
    parameters: Optional[
        "GetCISSingleCompetitorGetCISSingleCompetitorResultsByDateParameters"
    ]
    active_years: Optional[List[Optional[str]]] = Field(alias="activeYears")
    with_remark: Optional[bool] = Field(alias="withRemark")
    results_by_date: Optional[
        List[
            Optional[
                "GetCISSingleCompetitorGetCISSingleCompetitorResultsByDateResultsByDate"
            ]
        ]
    ] = Field(alias="resultsByDate")


class GetCISSingleCompetitorGetCISSingleCompetitorResultsByDateParameters(BaseModel):
    results_by_year: Optional[int] = Field(alias="resultsByYear")
    results_by_year_order_by: Optional[str] = Field(alias="resultsByYearOrderBy")


class GetCISSingleCompetitorGetCISSingleCompetitorResultsByDateResultsByDate(BaseModel):
    date: Optional[str]
    competition: Optional[str]
    venue: Optional[str]
    indoor: Optional[bool]
    discipline_code: Optional[str] = Field(alias="disciplineCode")
    discipline_name_url_slug: Optional[str] = Field(alias="disciplineNameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")
    discipline: Optional[str]
    country: Optional[str]
    category: Optional[str]
    race: Optional[str]
    place: Optional[str]
    mark: Optional[str]
    wind: Optional[str]
    not_legal: Optional[bool] = Field(alias="notLegal")
    result_score: Optional[int] = Field(alias="resultScore")
    remark: Optional[str]


class GetCISSingleCompetitorGetCISSingleCompetitorAthleteRepresentative(BaseModel):
    name: Optional[str]
    country_code: Optional[str] = Field(alias="countryCode")
    country_name: Optional[str] = Field(alias="countryName")
    email: Optional[str]
    telephone: Optional[str]
    mobile: Optional[str]
    rep_email: Optional[str] = Field(alias="repEmail")
    website: Optional[str]


class GetCISSingleCompetitorGetCISSingleCompetitorRoadRaceLabelStatus(BaseModel):
    year: Optional[str]
    label_status: Optional[str] = Field(alias="labelStatus")


GetCISSingleCompetitor.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitor.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorBasicData.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorPersonalBests.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorPersonalBestsResults.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBests.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBestsParameters.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorSeasonsBestsResults.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorProgressionOfSeasonsBests.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorProgressionOfSeasonsBestsResults.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorWorldRankings.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsParameters.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsCurrent.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorWorldRankingsBest.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorHonours.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorHonoursResults.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorResultsByYear.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearParameters.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearResultsByEvent.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorResultsByYearResultsByEventResults.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorResultsByDate.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorResultsByDateParameters.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorResultsByDateResultsByDate.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorAthleteRepresentative.update_forward_refs()
GetCISSingleCompetitorGetCISSingleCompetitorRoadRaceLabelStatus.update_forward_refs()
