from pydantic import BaseModel
from datetime import datetime


class ValidateInput(BaseModel):
    Modality: list[str]
    TableSize: list[int]
    BuyIn: list[str]
    TournID: list[str]
    TableID: list[str]
    HandID: list[str]
    LocalTime: list[datetime]
    Level: list[str]
    Ante: list[float | None]
    Blinds: list[tuple[float, float]]
    Owner: list[str]
    OwnersHand: list[tuple[str, str]]
    Playing: list[int]
    Player: list[str]
    Seat: list[int]
    PostedAnte: list[float | None]
    Position: list[str | None]
    PostedBlind: list[float | None]
    Stack: list[float | None]
    PreflopAction: list[list[tuple[str, str]]]
    FlopAction: list[list[tuple[str, str]]]
    TurnAction: list[list[tuple[str, str]]]
    RiverAction: list[list[tuple[str, str]]]
    AnteAllIn: list[bool]
    PreflopAllIn: list[bool]
    FlopAllIn: list[bool]
    TurnAllIn: list[bool]
    RiverAllIn: list[bool]
    BoardFlop: list[tuple[str, str, str] | tuple[()]]
    BoardTurn: list[tuple[str, str, str, str] | tuple[()]]
    BoardRiver: list[tuple[str, str, str, str, str] | tuple[()]]
    ShowDown: list[tuple[str, str] | tuple[None, None]]
    CardCombination: list[str | None]
    Result: list[str]
    Balance: list[float | None]
    FinalRank: list[int]
    Prize: list[float | None]
