ruz-bot/helpers/models.py
Administrator 209a355e37 alice
2023-04-08 14:19:18 +03:00

43 lines
1.1 KiB
Python

import datetime
from dataclasses import dataclass
from typing import Optional
import marshmallow_dataclass
from marshmallow import EXCLUDE
@dataclass
class User:
chat_id: int
name: Optional[str] = None
group: Optional[str] = None
hse_id: Optional[int] = None
state: str = "new"
notify_minutes: Optional[int] = 10
daily_notify_time: Optional[str] = None
next_daily_notify_time: Optional[datetime.datetime] = None
is_teacher: bool = False
campus: str = "Москва"
daily_notify_today: bool = True
first_lesson_notify: Optional[float] = None
yandex_id: Optional[str] = None
class Meta:
unknown = EXCLUDE
@dataclass
class Lesson:
hse_id: int
USchema = marshmallow_dataclass.class_schema(User)
class UserSchema(USchema):
def load(self, entity, *args, **kwargs):
if entity.get('next_daily_notify_time', None) is not None:
entity['next_daily_notify_time'] = entity['next_daily_notify_time'].strftime("%Y-%m-%dT%H:%M:00.000+00:00")
return super().load(entity, *args, **kwargs)