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

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