Files
specs/openspec/changes/archive/2026-10-09-add-manual-bank-cards/proposal.md
T
ksv741 329d66e767
Specs security / security (push) Successful in 8s
Specs verify / verify (push) Successful in 11s
spec: finalize wealth-ledger SDD migration
2026-10-09 21:14:22 +03:00

9.0 KiB

Why

WealthLedger показывает инвестиции и пассивный доход, но пользователю также нужен раздел личных банковских карт: сколько денег на каждой карте, какие операции происходили и к каким категориям относятся повседневные траты.

Первая итерация позволяет самостоятельно добавить карты и вести операции. Пользователь выбрал последовательную подготовку SDD-артефактов: сначала концепция и требования, затем Design, Tasks и реализация.

What Changes

Статус: ответы Q1–Q9 согласованы. Delta Specs дополнены правилами целостного ручного учёта для рассмотрения вместе с Design. Конкретизация требований ниже не является дословным ответом пользователя на каждый частный случай и не означает начала реализации.

Согласованный результат

  • Q1: каждая вручную добавленная карта имеет независимые баланс и историю.
  • Q2: баланс рассчитывается из начального остатка и внесённых операций.
  • Q3: первая версия поддерживает дебетовые карты в рублях.
  • Q4: доступны расход, пополнение, перевод между своими картами и возврат покупки. Перевод вводится одним действием и не считается расходом.
  • Q5: есть начальный набор категорий; пользователь может добавлять и переименовывать свои категории без вложенных подкатегорий.
  • Q6: журнал дополняется месячной сводкой расходов по категориям для выбранной карты и всех банковских карт пользователя вместе.
  • Q7: отрицательный учётный баланс допустим, в том числе до внесения пропущенного пополнения.
  • Q8: операции можно исправлять и удалять с пересчётом результатов; ненужную карту можно убрать в архив с сохранением истории.
  • Q9: возврат уменьшает расходы месяца, в котором он произошёл; сводка отдельно показывает расходы, возвраты и итог после возвратов.

Целостность пользовательского сценария

Пользователь задаёт начало учёта и начальный остаток, вносит операции с категориями и датами, исправляет ошибки и видит согласованные баланс, историю и месячные сводки. Частичные возвраты связаны с исходной покупкой. Архив скрывает неиспользуемую карту из обычного списка, сохраняя её вклад в исторические сводки; для новых операций и финансовых исправлений карту нужно вернуть из архива.

Раздел банковских карт доступен после входа в WealthLedger независимо от подключения инвестиционного счёта. Пользовательские данные сохраняются при повторном входе и перезапуске приложения, остаются доступны только владельцу и защищены от дублирования при повторной отправке и от потери одновременных изменений. Повтор создания карты или операции после потерянного ответа сохраняет один результат, включая начальный остаток карты.

Термины

Карта: добавленная пользователем дебетовая банковская карта в рублях, для которой он отдельно ведёт баланс и историю операций. Она не является брокерским счётом или общим счётом нескольких карт.

Баланс карты: сумма денег по данным ручного учёта, рассчитанная из начального остатка и внесённых операций. Она не подтверждает текущий остаток в банковском приложении: пропущенные движения могут привести к расхождению.

Итог расходов после возвратов: расходы выбранного месяца за вычетом возвратов, произошедших в этом месяце; итог может быть отрицательным.

После реализации определения дополнят существующий глоссарий; отдельный постоянный глоссарий не создаётся.

Границы первой итерации

Не входят автоматическая загрузка данных из банков, кредитные карты, другие валюты, общий денежный баланс нескольких карт, объединение банковских денег с инвестициями, прогнозы и бюджеты. Не предусмотрены вложенные подкатегории, удаление категорий и безвозвратное удаление карт.

Произвольной операции «исправить баланс» нет: расхождение исправляется изменением начального остатка либо внесением или исправлением реальной операции. Месячная сводка всех карт показывает траты и возвраты, сохраняя независимый баланс каждой карты.

Capabilities

New Capabilities

  • specs/manual-bank-cards/spec.md: ручное добавление и архив банковских карт, точный баланс по операциям, расходы и категории, пополнения, переводы, связанные возвраты, исправления и месячные сводки.

Modified Capabilities

Нет. Новый раздел сохраняет поведение существующих инвестиционных представлений и не расширяет понятие Brokerage Account банковскими картами.

Impact

  • Пользователь получает учёт банковских карт и повседневных трат с историей и возможностью исправить введённые данные.
  • Frontend: отдельный раздел карт, формы операций и исправлений, архив, категории и месячные сводки.
  • Backend: сохранение пользовательского ручного учёта, точный расчёт и защита целостности, приватности и одновременных изменений.
  • Specs: проверяемый контракт новой возможности через SDD.
  • Docs: описание новой предметной области и обновление глоссария при поставке.

Существующие брокерские счета получаются через инвестиционное подключение; банковские счета исключены их контрактом. Текущий журнал операций описывает историю брокера для чтения и не рассчитывает остаток после операции. Правила нового ручного учёта определяют Delta Specs этого изменения.