# This file was generated by liblab | https://liblab.com/

from __future__ import annotations
from typing import List
from .utils.json_map import JsonMap
from .base import BaseModel
from .schedule_game import ScheduleGame


@JsonMap(
    {
        "date_": "date",
        "total_items": "totalItems",
        "total_events": "totalEvents",
        "total_games": "totalGames",
        "total_matches": "totalMatches",
    }
)
class ScheduleDay(BaseModel):
    """ScheduleDay

    :param date_: date_, defaults to None
    :type date_: str, optional
    :param total_items: total_items, defaults to None
    :type total_items: float, optional
    :param total_events: total_events, defaults to None
    :type total_events: float, optional
    :param total_games: total_games, defaults to None
    :type total_games: float, optional
    :param total_matches: total_matches, defaults to None
    :type total_matches: float, optional
    :param games: games, defaults to None
    :type games: List[ScheduleGame], optional
    :param events: events, defaults to None
    :type events: List[dict], optional
    :param matches: matches, defaults to None
    :type matches: List[dict], optional
    """

    def __init__(
        self,
        date_: str = None,
        total_items: float = None,
        total_events: float = None,
        total_games: float = None,
        total_matches: float = None,
        games: List[ScheduleGame] = None,
        events: List[dict] = None,
        matches: List[dict] = None,
    ):
        if date_ is not None:
            self.date_ = date_
        if total_items is not None:
            self.total_items = total_items
        if total_events is not None:
            self.total_events = total_events
        if total_games is not None:
            self.total_games = total_games
        if total_matches is not None:
            self.total_matches = total_matches
        if games is not None:
            self.games = self._define_list(games, ScheduleGame)
        if events is not None:
            self.events = events
        if matches is not None:
            self.matches = matches
