docs: describe manual bank card accounting
Document exact balances, corrections, archive behavior and safe migration and rollback. Update product navigation and UI catalog.
This commit is contained in:
@@ -38,7 +38,7 @@ SPA выполняется в браузере пользователя. Backend
|
||||
| --- | --- |
|
||||
| React SPA | Экраны, навигация, формы, состояние входа и клиентский кэш ответов; форматирование денежных значений |
|
||||
| Backend API | Локальная идентичность, сессии, проверка доступа, подключение брокера, нормализация внешних данных, точные расчёты и серверные кэши |
|
||||
| SQLite | Долговременное хранение локальных пользователей, сессий и зашифрованных подключений |
|
||||
| SQLite | Долговременное хранение локальных пользователей, сессий, зашифрованных подключений и ручной банковской истории |
|
||||
| Внешние системы | Данные брокера, публичные сведения об инструментах и изображения в пределах своей ответственности |
|
||||
|
||||
Frontend организован слоями `app → pages → features → entities → shared`:
|
||||
@@ -66,6 +66,19 @@ SQLite содержит пользователя с нормализованны
|
||||
Пароли хешируются bcrypt; token брокера шифруется AES-256-GCM. Plaintext
|
||||
credentials не являются сохраняемым представлением этих данных.
|
||||
|
||||
Ручной банковский учёт хранит карты, пользовательские категории и операции
|
||||
в отдельных таблицах, связанных с User. Начальный остаток и суммы записаны
|
||||
целыми bigint-копейками, календарные даты — днями без времени. Перевод хранится
|
||||
одной операцией с двумя картами; возврат связан с исходной покупкой. Баланс
|
||||
вычисляется из неудалённой истории и отдельно не сохраняется.
|
||||
|
||||
Банковские запросы проверяют локального владельца каждой связи и не используют
|
||||
подключение брокера. Транзакции, ограничения уникальности и версии согласуют
|
||||
переводы, возвраты и конкурирующие исправления. Fingerprint исходного ввода
|
||||
и отметка удаления защищают от повторного создания после потерянного ответа
|
||||
или перезапуска. Архив обратим и сохраняет историю. Подробности —
|
||||
[банковские карты](../domains/cards/overview.md).
|
||||
|
||||
Сессии и подключение связаны с владельцем. Access token подтверждает
|
||||
локального пользователя, но `accountId` из URL сам по себе не даёт права
|
||||
читать брокерский счёт. Backend получает текущее подключение пользователя
|
||||
|
||||
Reference in New Issue
Block a user