Files
specs/openspec/changes/add-manual-bank-cards/proposal.md
T
ksv741 834f2d146c docs: record completed manual bank card change
Track the approved proposal, delta specification and design with all 29 verified implementation tasks. Keep the change active without archiving or syncing main specifications.
2026-09-12 18:34:20 +03:00

112 lines
9.0 KiB
Markdown

## Why
WealthLedger показывает инвестиции и пассивный доход, но пользователю также
нужен раздел личных банковских карт: сколько денег на каждой карте, какие
операции происходили и к каким категориям относятся повседневные траты.
Первая итерация позволяет самостоятельно добавить карты и вести операции.
Пользователь выбрал последовательную подготовку SDD-артефактов: сначала
концепция и требования, затем Design, Tasks и реализация.
## What Changes
**Статус:** ответы Q1–Q9 согласованы. [Delta Specs](specs/manual-bank-cards/spec.md)
дополнены правилами целостного ручного учёта для рассмотрения вместе с Design.
Конкретизация требований ниже не является дословным ответом пользователя
на каждый частный случай и не означает начала реализации.
### Согласованный результат
- Q1: каждая вручную добавленная карта имеет независимые баланс и историю.
- Q2: баланс рассчитывается из начального остатка и внесённых операций.
- Q3: первая версия поддерживает дебетовые карты в рублях.
- Q4: доступны расход, пополнение, перевод между своими картами и возврат
покупки. Перевод вводится одним действием и не считается расходом.
- Q5: есть начальный набор категорий; пользователь может добавлять
и переименовывать свои категории без вложенных подкатегорий.
- Q6: журнал дополняется месячной сводкой расходов по категориям для выбранной
карты и всех банковских карт пользователя вместе.
- Q7: отрицательный учётный баланс допустим, в том числе до внесения
пропущенного пополнения.
- Q8: операции можно исправлять и удалять с пересчётом результатов;
ненужную карту можно убрать в архив с сохранением истории.
- Q9: возврат уменьшает расходы месяца, в котором он произошёл;
сводка отдельно показывает расходы, возвраты и итог после возвратов.
### Целостность пользовательского сценария
Пользователь задаёт начало учёта и начальный остаток, вносит операции
с категориями и датами, исправляет ошибки и видит согласованные баланс,
историю и месячные сводки. Частичные возвраты связаны с исходной покупкой.
Архив скрывает неиспользуемую карту из обычного списка, сохраняя её вклад
в исторические сводки; для новых операций и финансовых исправлений карту
нужно вернуть из архива.
Раздел банковских карт доступен после входа в WealthLedger независимо
от подключения инвестиционного счёта. Пользовательские данные сохраняются
при повторном входе и перезапуске приложения, остаются доступны только
владельцу и защищены от дублирования при повторной отправке и от потери
одновременных изменений.
Повтор создания карты или операции после потерянного ответа сохраняет один
результат, включая начальный остаток карты.
### Термины
**Карта:** добавленная пользователем дебетовая банковская карта в рублях,
для которой он отдельно ведёт баланс и историю операций. Она не является
брокерским счётом или общим счётом нескольких карт.
**Баланс карты:** сумма денег по данным ручного учёта, рассчитанная из начального
остатка и внесённых операций. Она не подтверждает текущий остаток в банковском
приложении: пропущенные движения могут привести к расхождению.
**Итог расходов после возвратов:** расходы выбранного месяца за вычетом
возвратов, произошедших в этом месяце; итог может быть отрицательным.
После реализации определения дополнят существующий
[глоссарий](../../../../docs/glossary.md); отдельный постоянный глоссарий
не создаётся.
### Границы первой итерации
Не входят автоматическая загрузка данных из банков, кредитные карты, другие
валюты, общий денежный баланс нескольких карт, объединение банковских денег
с инвестициями, прогнозы и бюджеты. Не предусмотрены вложенные подкатегории,
удаление категорий и безвозвратное удаление карт.
Произвольной операции «исправить баланс» нет: расхождение исправляется
изменением начального остатка либо внесением или исправлением реальной
операции. Месячная сводка всех карт показывает траты и возвраты, сохраняя
независимый баланс каждой карты.
## Capabilities
### New Capabilities
- `specs/manual-bank-cards/spec.md`: ручное добавление и архив банковских карт,
точный баланс по операциям, расходы и категории, пополнения, переводы,
связанные возвраты, исправления и месячные сводки.
### Modified Capabilities
Нет. Новый раздел сохраняет поведение существующих инвестиционных
представлений и не расширяет понятие Brokerage Account банковскими картами.
## Impact
- Пользователь получает учёт банковских карт и повседневных трат с историей
и возможностью исправить введённые данные.
- Frontend: отдельный раздел карт, формы операций и исправлений, архив,
категории и месячные сводки.
- Backend: сохранение пользовательского ручного учёта, точный расчёт
и защита целостности, приватности и одновременных изменений.
- Specs: проверяемый контракт новой возможности через SDD.
- Docs: описание новой предметной области и обновление глоссария при поставке.
Существующие [брокерские счета](../../../../docs/domains/accounts/overview.md)
получаются через инвестиционное подключение; банковские счета исключены их
[контрактом](../../specs/brokerage-accounts/spec.md).
Текущий [журнал операций](../../../../docs/domains/operations/overview.md)
описывает историю брокера для чтения и не рассчитывает остаток после операции.
Правила нового ручного учёта определяют Delta Specs этого изменения.