# 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_day import ScheduleDay


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

    :param copyright: copyright, defaults to None
    :type copyright: 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 wait: wait, defaults to None
    :type wait: float, optional
    :param dates: dates, defaults to None
    :type dates: List[ScheduleDay], optional
    """

    def __init__(
        self,
        copyright: str = None,
        total_items: float = None,
        total_events: float = None,
        total_games: float = None,
        total_matches: float = None,
        wait: float = None,
        dates: List[ScheduleDay] = None,
    ):
        if copyright is not None:
            self.copyright = copyright
        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 wait is not None:
            self.wait = wait
        if dates is not None:
            self.dates = self._define_list(dates, ScheduleDay)
