# 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 GetCalendarEvents(BaseModel):
    get_calendar_events: Optional["GetCalendarEventsGetCalendarEvents"] = Field(
        alias="getCalendarEvents"
    )


class GetCalendarEventsGetCalendarEvents(BaseModel):
    hits: Optional[int]
    default_offset: Optional[int] = Field(alias="defaultOffset")
    pagination_page: Optional[int] = Field(alias="paginationPage")
    parameters: Optional["GetCalendarEventsGetCalendarEventsParameters"]
    results: Optional[List[Optional["GetCalendarEventsGetCalendarEventsResults"]]]
    options: Optional["GetCalendarEventsGetCalendarEventsOptions"]


class GetCalendarEventsGetCalendarEventsParameters(BaseModel):
    start_date: Optional[str] = Field(alias="startDate")
    end_date: Optional[str] = Field(alias="endDate")
    query: Optional[str]
    region_type: Optional[str] = Field(alias="regionType")
    region_id: Optional[int] = Field(alias="regionId")
    discipline_id: Optional[int] = Field(alias="disciplineId")
    ranking_category_id: Optional[int] = Field(alias="rankingCategoryId")
    permit_level_id: Optional[int] = Field(alias="permitLevelId")
    competition_group_id: Optional[int] = Field(alias="competitionGroupId")
    competition_subgroup_id: Optional[int] = Field(alias="competitionSubgroupId")
    limit: Optional[int]
    offset: Optional[int]
    show_options_with_no_hits: Optional[bool] = Field(alias="showOptionsWithNoHits")
    hide_competitions_with_no_results: Optional[bool] = Field(
        alias="hideCompetitionsWithNoResults"
    )
    season: Optional[str]


class GetCalendarEventsGetCalendarEventsResults(BaseModel):
    id: Optional[int]
    iaaf_id: Optional[int] = Field(alias="iaafId")
    has_results: Optional[bool] = Field(alias="hasResults")
    has_api_results: Optional[bool] = Field(alias="hasApiResults")
    has_startlist: Optional[bool] = Field(alias="hasStartlist")
    name: Optional[str]
    venue: Optional[str]
    area: Optional[str]
    country: Optional[str]
    ranking_category: Optional[str] = Field(alias="rankingCategory")
    disciplines: Optional[str]
    competition_group: Optional[str] = Field(alias="competitionGroup")
    competition_subgroup: Optional[str] = Field(alias="competitionSubgroup")
    start_date: Optional[str] = Field(alias="startDate")
    end_date: Optional[str] = Field(alias="endDate")
    date_range: Optional[str] = Field(alias="dateRange")
    season: Optional[str]
    was_url: Optional[str] = Field(alias="wasUrl")
    has_competition_information: Optional[bool] = Field(
        alias="hasCompetitionInformation"
    )
    undetermined_competition_period: Optional[
        "GetCalendarEventsGetCalendarEventsResultsUndeterminedCompetitionPeriod"
    ] = Field(alias="undeterminedCompetitionPeriod")


class GetCalendarEventsGetCalendarEventsResultsUndeterminedCompetitionPeriod(BaseModel):
    status: Optional[str]
    label: Optional[str]
    remark: Optional[str]


class GetCalendarEventsGetCalendarEventsOptions(BaseModel):
    regions: Optional["GetCalendarEventsGetCalendarEventsOptionsRegions"]
    seasons: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsSeasons"]]
    ]
    disciplines: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsDisciplines"]]
    ]
    ranking_categories: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsRankingCategories"]]
    ] = Field(alias="rankingCategories")
    permit_levels: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsPermitLevels"]]
    ] = Field(alias="permitLevels")
    competition_groups: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsCompetitionGroups"]]
    ] = Field(alias="competitionGroups")
    competition_subgroups: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsCompetitionSubgroups"]]
    ] = Field(alias="competitionSubgroups")


class GetCalendarEventsGetCalendarEventsOptionsRegions(BaseModel):
    world: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsRegionsWorld"]]
    ]
    area: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsRegionsArea"]]
    ]
    country: Optional[
        List[Optional["GetCalendarEventsGetCalendarEventsOptionsRegionsCountry"]]
    ]


class GetCalendarEventsGetCalendarEventsOptionsRegionsWorld(BaseModel):
    id: Optional[int]
    name: Optional[str]
    count: Optional[int]


class GetCalendarEventsGetCalendarEventsOptionsRegionsArea(BaseModel):
    id: Optional[int]
    name: Optional[str]
    count: Optional[int]


class GetCalendarEventsGetCalendarEventsOptionsRegionsCountry(BaseModel):
    id: Optional[int]
    name: Optional[str]
    count: Optional[int]


class GetCalendarEventsGetCalendarEventsOptionsSeasons(BaseModel):
    id: Optional[str]
    name: Optional[str]


class GetCalendarEventsGetCalendarEventsOptionsDisciplines(BaseModel):
    id: Optional[int]
    name: Optional[str]
    count: Optional[int]


class GetCalendarEventsGetCalendarEventsOptionsRankingCategories(BaseModel):
    id: Optional[int]
    name: Optional[str]
    count: Optional[int]


class GetCalendarEventsGetCalendarEventsOptionsPermitLevels(BaseModel):
    id: Optional[int]
    name: Optional[str]
    count: Optional[int]


class GetCalendarEventsGetCalendarEventsOptionsCompetitionGroups(BaseModel):
    id: Optional[int]
    name: Optional[str]
    count: Optional[int]


class GetCalendarEventsGetCalendarEventsOptionsCompetitionSubgroups(BaseModel):
    id: Optional[int]
    name: Optional[str]
    count: Optional[int]


GetCalendarEvents.update_forward_refs()
GetCalendarEventsGetCalendarEvents.update_forward_refs()
GetCalendarEventsGetCalendarEventsParameters.update_forward_refs()
GetCalendarEventsGetCalendarEventsResults.update_forward_refs()
GetCalendarEventsGetCalendarEventsResultsUndeterminedCompetitionPeriod.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptions.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsRegions.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsRegionsWorld.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsRegionsArea.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsRegionsCountry.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsSeasons.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsDisciplines.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsRankingCategories.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsPermitLevels.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsCompetitionGroups.update_forward_refs()
GetCalendarEventsGetCalendarEventsOptionsCompetitionSubgroups.update_forward_refs()
