Bot & Automation

Activity Reminder Bot

/root/hermes-projects/Activity Reminder Bot

apps/activity_reminder_bot/services/repeat.py text
from datetime import datetime

from dateutil.relativedelta import relativedelta

from activity_reminder_bot.models import ReminderRepeat


def next_repeat_due_at(current_due_at: datetime, repeat: ReminderRepeat) -> datetime | None:
    if repeat == ReminderRepeat.none:
        return None
    if repeat == ReminderRepeat.daily:
        return current_due_at + relativedelta(days=1)
    if repeat == ReminderRepeat.weekly:
        return current_due_at + relativedelta(weeks=1)
    if repeat == ReminderRepeat.monthly:
        return current_due_at + relativedelta(months=1)
    return None