Bot & Automation
Activity Reminder Bot
/root/hermes-projects/Activity Reminder Bot
apps/activity_reminder_bot/models/reminder.py
text
from datetime import date, datetime, time
from enum import StrEnum
from pydantic import BaseModel, Field
class ReminderRepeat(StrEnum):
none = "Tidak Ada"
daily = "Harian"
weekly = "Mingguan"
monthly = "Bulanan"
class ReminderStatus(StrEnum):
active = "Aktif"
snoozed = "Ditunda"
notified = "Terkirim"
done = "Selesai"
deleted = "Dihapus"
class ReminderDraft(BaseModel):
user_id: int
user_name: str
activity_name: str = Field(min_length=1)
description: str = ""
reminder_date: date
reminder_time: time
repeat: ReminderRepeat = ReminderRepeat.none
@property
def due_at(self) -> datetime:
return datetime.combine(self.reminder_date, self.reminder_time)
class Reminder(ReminderDraft):
public_id: str
status: ReminderStatus = ReminderStatus.active
created_at: datetime
updated_at: datetime
notified_at: datetime | None = None
alarm_message_id: int | None = None
alarm_count: int = 0
row_number: int | None = None