Files
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

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 этого изменения.