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

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel


class TeamProfile(BaseModel):
    team_profile: Optional["TeamProfileTeamProfile"] = Field(alias="teamProfile")


class TeamProfileTeamProfile(BaseModel):
    personal_best_info: Optional[
        List[Optional["TeamProfileTeamProfilePersonalBestInfo"]]
    ] = Field(alias="personalBestInfo")
    personal_bests: Optional[
        List[Optional["TeamProfileTeamProfilePersonalBests"]]
    ] = Field(alias="personalBests")
    personal_honour_info: Optional[
        List[Optional["TeamProfileTeamProfilePersonalHonourInfo"]]
    ] = Field(alias="personalHonourInfo")
    personal_honour: Optional[
        List[Optional["TeamProfileTeamProfilePersonalHonour"]]
    ] = Field(alias="personalHonour")


class TeamProfileTeamProfilePersonalBestInfo(BaseModel):
    id: Optional[int]
    indoor_outdoor: Optional[str] = Field(alias="IndoorOutdoor")


class TeamProfileTeamProfilePersonalBests(BaseModel):
    id: Optional[int]
    competitor_id: Optional[int] = Field(alias="competitorId")
    updated_on: Optional[Any] = Field(alias="updatedOn")
    result_date: Optional[Any] = Field(alias="resultDate")
    hash: Optional[str]
    best_type_code: Optional[str] = Field(alias="bestTypeCode")
    best_type_name: Optional[str] = Field(alias="bestTypeName")
    season: Optional[int]
    best_order: Optional[int] = Field(alias="bestOrder")
    best_type_order: Optional[str] = Field(alias="bestTypeOrder")
    best_sub_type_order: Optional[int] = Field(alias="bestSubTypeOrder")
    indoor_outdoor: Optional[str] = Field(alias="indoorOutdoor")
    result_id: Optional[int] = Field(alias="resultId")
    result_wind: Optional[str] = Field(alias="resultWind")
    result_venue: Optional[str] = Field(alias="resultVenue")
    result_mark: Optional[str] = Field(alias="resultMark")
    discipline: Optional["TeamProfileTeamProfilePersonalBestsDiscipline"]


class TeamProfileTeamProfilePersonalBestsDiscipline(BaseModel):
    id: Optional[str] = Field(alias="_id")
    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_i_a_a_f: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


class TeamProfileTeamProfilePersonalHonourInfo(BaseModel):
    id: Optional[int]


class TeamProfileTeamProfilePersonalHonour(BaseModel):
    id: Optional[int]
    competitor_id: Optional[int] = Field(alias="competitorId")
    result_id: Optional[int] = Field(alias="resultId")
    event_id: Optional[int] = Field(alias="eventId")
    hash: Optional[str]
    event_name: Optional[str] = Field(alias="eventName")
    event_category_name: Optional[str] = Field(alias="eventCategoryName")
    event_sub_category_name: Optional[str] = Field(alias="eventSubCategoryName")
    updated_on: Optional[Any] = Field(alias="updatedOn")
    event_start_date: Optional[Any] = Field(alias="eventStartDate")
    event_end_date: Optional[Any] = Field(alias="eventEndDate")
    result_date: Optional[Any] = Field(alias="resultDate")
    result_mark: Optional[str] = Field(alias="resultMark")
    result_venue: Optional[str] = Field(alias="resultVenue")
    result_rank_detail: Optional[str] = Field(alias="resultRankDetail")
    event_category_name_url_slug: Optional[str] = Field(
        alias="eventCategoryNameUrlSlug"
    )
    event_sub_category_name_url_slug: Optional[str] = Field(
        alias="eventSubCategoryNameUrlSlug"
    )
    event_name_url_slug: Optional[str] = Field(alias="eventNameUrlSlug")
    honour_order: Optional[int] = Field(alias="honourOrder")
    honour_type_order: Optional[int] = Field(alias="honourTypeOrder")
    discipline: Optional["TeamProfileTeamProfilePersonalHonourDiscipline"]


class TeamProfileTeamProfilePersonalHonourDiscipline(BaseModel):
    id: Optional[str] = Field(alias="_id")
    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_i_a_a_f: Optional[bool] = Field(alias="isValidIAAF")
    name_url_slug: Optional[str] = Field(alias="nameUrlSlug")
    type_name_url_slug: Optional[str] = Field(alias="typeNameUrlSlug")


TeamProfile.update_forward_refs()
TeamProfileTeamProfile.update_forward_refs()
TeamProfileTeamProfilePersonalBestInfo.update_forward_refs()
TeamProfileTeamProfilePersonalBests.update_forward_refs()
TeamProfileTeamProfilePersonalBestsDiscipline.update_forward_refs()
TeamProfileTeamProfilePersonalHonourInfo.update_forward_refs()
TeamProfileTeamProfilePersonalHonour.update_forward_refs()
TeamProfileTeamProfilePersonalHonourDiscipline.update_forward_refs()
