123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- from dataclasses import dataclass
- from datetime import datetime
- from aiogram.types.user import User
- from app.dates import compute_notification_dates
- @dataclass
- class Event:
- date_time: datetime
- organizer: User
- agenda: str
- participants: str
- meeting_url: str
- chat_id: int
- @dataclass
- class NotificationData:
- date_time_srting: str
- message: str
- chat_id: int
- @dataclass
- class Notifications:
- now: NotificationData
- befor_day: NotificationData
- befor_4hours: NotificationData
- befor_5mins: NotificationData
- def get_notifications(event: Event) -> Notifications:
- """
- Принимает событие встречи и возврашает объект с напоминаниями
- """
- dateformat = "%d\-%m\-%Y"
- event_info = f"*Дата:* {event.date_time.strftime(dateformat)}\n\n*Время:* \
- {event.date_time.strftime('%H:%M')} МСК\n\n*Повестка:* {event.agenda}\n\n*Участники:* \
- {event.participants}\n\n*Место встречи:* {event.meeting_url}"
- message_now = f"Внимание\! {event.organizer.first_name} \
- {event.organizer.last_name} запланировал\(а\) встречу\n\n{event_info}"
-
- notification_dates = compute_notification_dates(event.date_time)
- return Notifications(
- NotificationData("", message_now, event.chat_id),
- NotificationData(
- notification_dates.befor_day,
- f"Завтра встреча\n\n{event_info}",
- event.chat_id),
- NotificationData(
- notification_dates.befor_4hours,
- f"Сегодня встреча\n\n{event_info}",
- event.chat_id),
- NotificationData(
- notification_dates.befor_5mins,
- f"Начинается встреча\n\n{event_info}",
- event.chat_id)
- )
|