# Generated by ariadne-codegen
# Source: queries/central-data

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel
from .enums import SeriesType


class GetSeries(BaseModel):
    all_series: "GetSeriesAllSeries" = Field(alias="allSeries")


class GetSeriesAllSeries(BaseModel):
    total_count: int = Field(alias="totalCount")
    edges: List["GetSeriesAllSeriesEdges"]
    page_info: "GetSeriesAllSeriesPageInfo" = Field(alias="pageInfo")


class GetSeriesAllSeriesEdges(BaseModel):
    node: "GetSeriesAllSeriesEdgesNode"


class GetSeriesAllSeriesEdgesNode(BaseModel):
    id: str
    type: SeriesType
    format: "GetSeriesAllSeriesEdgesNodeFormat"
    external_links: List["GetSeriesAllSeriesEdgesNodeExternalLinks"] = Field(
        alias="externalLinks"
    )
    tournament: "GetSeriesAllSeriesEdgesNodeTournament"
    teams: List["GetSeriesAllSeriesEdgesNodeTeams"]
    start_time_scheduled: Any = Field(alias="startTimeScheduled")


class GetSeriesAllSeriesEdgesNodeFormat(BaseModel):
    id: Optional[str]
    name: str
    name_shortened: str = Field(alias="nameShortened")


class GetSeriesAllSeriesEdgesNodeExternalLinks(BaseModel):
    data_provider: "GetSeriesAllSeriesEdgesNodeExternalLinksDataProvider" = Field(
        alias="dataProvider"
    )
    external_entity: "GetSeriesAllSeriesEdgesNodeExternalLinksExternalEntity" = Field(
        alias="externalEntity"
    )


class GetSeriesAllSeriesEdgesNodeExternalLinksDataProvider(BaseModel):
    description: Optional[str]
    name: str


class GetSeriesAllSeriesEdgesNodeExternalLinksExternalEntity(BaseModel):
    id: str


class GetSeriesAllSeriesEdgesNodeTournament(BaseModel):
    id: str
    end_date: Optional[Any] = Field(alias="endDate")
    logo_url: Any = Field(alias="logoUrl")
    name: str
    name_shortened: str = Field(alias="nameShortened")
    start_date: Optional[Any] = Field(alias="startDate")
    external_links: List["GetSeriesAllSeriesEdgesNodeTournamentExternalLinks"] = Field(
        alias="externalLinks"
    )


class GetSeriesAllSeriesEdgesNodeTournamentExternalLinks(BaseModel):
    data_provider: "GetSeriesAllSeriesEdgesNodeTournamentExternalLinksDataProvider" = (
        Field(alias="dataProvider")
    )
    external_entity: (
        "GetSeriesAllSeriesEdgesNodeTournamentExternalLinksExternalEntity"
    ) = Field(alias="externalEntity")


class GetSeriesAllSeriesEdgesNodeTournamentExternalLinksDataProvider(BaseModel):
    description: Optional[str]
    name: str


class GetSeriesAllSeriesEdgesNodeTournamentExternalLinksExternalEntity(BaseModel):
    id: str


class GetSeriesAllSeriesEdgesNodeTeams(BaseModel):
    base_info: "GetSeriesAllSeriesEdgesNodeTeamsBaseInfo" = Field(alias="baseInfo")


class GetSeriesAllSeriesEdgesNodeTeamsBaseInfo(BaseModel):
    id: str
    color_primary: Any = Field(alias="colorPrimary")
    color_secondary: Any = Field(alias="colorSecondary")
    external_links: List["GetSeriesAllSeriesEdgesNodeTeamsBaseInfoExternalLinks"] = (
        Field(alias="externalLinks")
    )
    logo_url: Any = Field(alias="logoUrl")
    name_shortened: Optional[str] = Field(alias="nameShortened")
    name: str


class GetSeriesAllSeriesEdgesNodeTeamsBaseInfoExternalLinks(BaseModel):
    data_provider: (
        "GetSeriesAllSeriesEdgesNodeTeamsBaseInfoExternalLinksDataProvider"
    ) = Field(alias="dataProvider")
    external_entity: (
        "GetSeriesAllSeriesEdgesNodeTeamsBaseInfoExternalLinksExternalEntity"
    ) = Field(alias="externalEntity")


class GetSeriesAllSeriesEdgesNodeTeamsBaseInfoExternalLinksDataProvider(BaseModel):
    description: Optional[str]
    name: str


class GetSeriesAllSeriesEdgesNodeTeamsBaseInfoExternalLinksExternalEntity(BaseModel):
    id: str


class GetSeriesAllSeriesPageInfo(BaseModel):
    end_cursor: Optional[Any] = Field(alias="endCursor")
    has_next_page: bool = Field(alias="hasNextPage")
    has_previous_page: bool = Field(alias="hasPreviousPage")
    start_cursor: Optional[Any] = Field(alias="startCursor")


GetSeries.model_rebuild()
GetSeriesAllSeries.model_rebuild()
GetSeriesAllSeriesEdges.model_rebuild()
GetSeriesAllSeriesEdgesNode.model_rebuild()
GetSeriesAllSeriesEdgesNodeExternalLinks.model_rebuild()
GetSeriesAllSeriesEdgesNodeTournament.model_rebuild()
GetSeriesAllSeriesEdgesNodeTournamentExternalLinks.model_rebuild()
GetSeriesAllSeriesEdgesNodeTeams.model_rebuild()
GetSeriesAllSeriesEdgesNodeTeamsBaseInfo.model_rebuild()
GetSeriesAllSeriesEdgesNodeTeamsBaseInfoExternalLinks.model_rebuild()
