# 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 GetSingleCompetitorWinningStreak(BaseModel):
    get_single_competitor_winning_streak: Optional[
        "GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreak"
    ] = Field(alias="getSingleCompetitorWinningStreak")


class GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreak(BaseModel):
    parameters: Optional[
        "GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakParameters"
    ]
    discipline_options: Optional[
        List[
            Optional[
                "GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakDisciplineOptions"
            ]
        ]
    ] = Field(alias="disciplineOptions")
    streaks: Optional[
        List[
            Optional[
                "GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakStreaks"
            ]
        ]
    ]


class GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakParameters(
    BaseModel
):
    winning_streaks_discipline_option: Optional[str] = Field(
        alias="winningStreaksDisciplineOption"
    )
    winning_streaks_start_date: Optional[str] = Field(alias="winningStreaksStartDate")
    winning_streaks_end_date: Optional[str] = Field(alias="winningStreaksEndDate")
    winning_streaks_final_only: Optional[bool] = Field(alias="winningStreaksFinalOnly")


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


class GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakStreaks(
    BaseModel
):
    length: Optional[int]
    results: Optional[
        List[
            Optional[
                "GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakStreaksResults"
            ]
        ]
    ]


class GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakStreaksResults(
    BaseModel
):
    date: Optional[str]
    venue: Optional[str]
    competition: Optional[str]
    race: Optional[str]
    result: Optional[str]
    discipline: Optional[str]


GetSingleCompetitorWinningStreak.update_forward_refs()
GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreak.update_forward_refs()
GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakParameters.update_forward_refs()
GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakDisciplineOptions.update_forward_refs()
GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakStreaks.update_forward_refs()
GetSingleCompetitorWinningStreakGetSingleCompetitorWinningStreakStreaksResults.update_forward_refs()
