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

from typing import Any, List, Optional

from pydantic import Field

from .base_model import BaseModel


class GetAvailableTournaments(BaseModel):
    tournaments: "GetAvailableTournamentsTournaments"


class GetAvailableTournamentsTournaments(BaseModel):
    total_count: int = Field(alias="totalCount")
    edges: List["GetAvailableTournamentsTournamentsEdges"]
    page_info: "GetAvailableTournamentsTournamentsPageInfo" = Field(alias="pageInfo")


class GetAvailableTournamentsTournamentsEdges(BaseModel):
    node: "GetAvailableTournamentsTournamentsEdgesNode"


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


class GetAvailableTournamentsTournamentsEdgesNodeExternalLinks(BaseModel):
    data_provider: (
        "GetAvailableTournamentsTournamentsEdgesNodeExternalLinksDataProvider"
    ) = Field(alias="dataProvider")
    external_entity: (
        "GetAvailableTournamentsTournamentsEdgesNodeExternalLinksExternalEntity"
    ) = Field(alias="externalEntity")


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


class GetAvailableTournamentsTournamentsEdgesNodeExternalLinksExternalEntity(BaseModel):
    id: str


class GetAvailableTournamentsTournamentsPageInfo(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")


GetAvailableTournaments.model_rebuild()
GetAvailableTournamentsTournaments.model_rebuild()
GetAvailableTournamentsTournamentsEdges.model_rebuild()
GetAvailableTournamentsTournamentsEdgesNode.model_rebuild()
GetAvailableTournamentsTournamentsEdgesNodeExternalLinks.model_rebuild()
