contest.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from typing import TYPE_CHECKING, Optional
  2. from yandex_music import YandexMusicModel
  3. from yandex_music.utils import model
  4. if TYPE_CHECKING:
  5. from yandex_music import ClientType
  6. @model
  7. class Contest(YandexMusicModel):
  8. """Класс, представляющий контест TODO.
  9. Note:
  10. Известные значения поля `status`: `editing`, `withdrew-moderator`.
  11. Attributes:
  12. contest_id (:obj:`str`): Уникальный идентификатор.
  13. status (:obj:`str`): Статус.
  14. can_edit (:obj:`bool`): Разрешено ли редактирование.
  15. sent (:obj:`str`, optional): Дата отправки.
  16. withdrawn (:obj:`str`, optional): Дата вывода (окончания).
  17. client (:obj:`yandex_music.Client`, optional): Клиент Yandex Music.
  18. """
  19. contest_id: str
  20. status: str
  21. can_edit: bool
  22. sent: Optional[str] = None
  23. withdrawn: Optional[str] = None
  24. client: Optional['ClientType'] = None
  25. def __post_init__(self) -> None:
  26. self._id_attrs = (self.contest_id, self.status)