Skip to content

feat: recurring payments — auto-transaction on schedule #37

Description

@Tarasusrus

Решение (2026-04-04)

Понятийное разделение

Повторяющееся (recurring) — автоматическое действие по расписанию без подтверждения пользователя. Бот сам создаёт транзакцию и шлёт уведомление. Пример: аренда 30,000 THB каждое 1-е число.

Запланированное (planned) — список намерений/желаний без жёсткой даты. Пример: купить толкушку. В будущем: триггер по событию (зп → бот напоминает о планах). Это отдельный issue, реализуется позже.


MVP Scope (этот issue)

  • Только monthly recurrence
  • Только фиксированная сумма
  • Авто-создание транзакции + уведомление в Telegram, без подтверждения
  • Архитектурно: recurrence_type как расширяемый enum (monthly/weekly/daily) — не прибито гвоздями

Архитектура

Новая таблица budget_recurring:

  • id, name, amount, category_id, currency
  • recurrence_type: TEXT (monthly | weekly | daily — расширяемо)
  • day_of_month: INT (для monthly, например 1)
  • next_date: DATE — следующая дата срабатывания
  • enabled: BOOL
  • created_at, updated_at

Worker: расширяем существующий ReminderWorker (или отдельный RecurringWorker) — каждую минуту смотрит next_date <= today, создаёт транзакцию, шлёт уведомление, сдвигает next_date на следующий период.

Skill actions:

  • add_recurring — создать повторяющийся платёж
  • list_recurring — список всех (активных + отключённых)
  • disable_recurring / delete_recurring

Связанные issue

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions