From 76d4de4428e5f902d82782ade745487d015994a1 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 26 Aug 2026 20:57:55 +0300 Subject: [PATCH] docs: describe brokerage account summaries --- architecture/system-overview.md | 8 +++++--- features/brokerage-accounts.md | 20 ++++++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/architecture/system-overview.md b/architecture/system-overview.md index 3bd4920..9c0b8a8 100644 --- a/architecture/system-overview.md +++ b/architecture/system-overview.md @@ -28,9 +28,11 @@ WealthLedger — локальное приложение для просмотр генерируется штатным workflow. - Поставка остаётся локальной: deployment, Docker, CI/CD и облачные сервисы не входят в текущие границы. -- Portfolio Snapshot, Future Cash Events и Ledger pages существуют как - read-only наблюдения текущего T-Bank connection; система не хранит историю - портфеля, будущих событий или брокерских счетов как долговременные агрегаты. +- Portfolio Snapshot, summary списка Brokerage Account, Future Cash Events и + Ledger pages существуют как read-only наблюдения текущего T-Bank connection; + система не хранит историю портфеля, будущих событий или брокерских счетов как + долговременные агрегаты. Summary списка сохраняет исходные валюты без FX- + агрегации и может быть локально недоступна для отдельного счета. ## Поток auth/session diff --git a/features/brokerage-accounts.md b/features/brokerage-accounts.md index 4ce705f..bcd9f1f 100644 --- a/features/brokerage-accounts.md +++ b/features/brokerage-accounts.md @@ -18,7 +18,11 @@ sequenceDiagram else Connection существует B->>T: GetAccounts(OPEN) over TLS T-->>B: Счета или ошибка - B-->>F: Нормализованный массив либо Problem Details + par Для каждого поддерживаемого счета + B->>T: GetPortfolio + GetPositions over TLS + T-->>B: Исходные валютные значения или temporary unavailable + end + B-->>F: Нормализованный массив с локальными summary либо Problem Details F-->>U: Карточки счетов или error-state end ``` @@ -33,14 +37,22 @@ sequenceDiagram "id": "account-id", "name": "Основной", "type": "BROKERAGE", - "openedOn": "2024-08-13" + "openedOn": "2024-08-13", + "portfolioSummary": { + "totalsByCurrency": [ + { "currency": "RUB", "value": "12500.50" }, + { "currency": "USD", "value": "40" } + ] + } } ] ``` Поддерживаемые `type`: `BROKERAGE`, `INDIVIDUAL_INVESTMENT`, `INVEST_BOX`, `MONEY_MARKET_FUND`. Банковские и неизвестные типы T-Bank не возвращаются. Пустое upstream-название заменяется названием типа, а отсутствующая дата открытия передаётся как `null`. -Список является результатом текущего наблюдения T-Bank connection: если счёт больше не открыт, не поддерживается или недоступен через это подключение, он не считается доступным для WealthLedger. +`portfolioSummary` — nullable наблюдение текущего портфеля конкретного счета. `totalsByCurrency` точно складывает ненулевые текущие стоимости позиций и денежные остатки только в одинаковой исходной ISO-валюте; FX-конвертация и единый итог не выполняются. Успешный пустой портфель возвращает пустой массив. Когда T-Bank временно недоступен только для summary одного счета, этот счет всё равно остаётся в списке с `portfolioSummary: null`; переход к его деталям и остальные карточки не блокируются. + +Список является результатом текущего наблюдения T-Bank connection: если счёт больше не открыт, не поддерживается или недоступен через это подключение, он не считается доступным для WealthLedger. Ошибки connection или token, а также ошибки исходного получения списка, не превращаются в частичный ответ. ## Состояния @@ -50,7 +62,7 @@ sequenceDiagram - Неизвестная ошибка: экран предлагает только повторить загрузку. - Успешный пустой ответ: штатное состояние отсутствия инвестиционных счетов. -Карточка ведёт на `/accounts/:accountId` и показывает название, локализованный тип и дату открытия без времени. +Карточка ведёт на `/accounts/:accountId` по всей области и сохраняет нативную клавиатурную навигацию/focus. Она показывает название, локализованный тип, до двух итогов в исходных валютах, число остальных валют, дату открытия без времени и видимое действие открытия. Недоступная или пустая summary отображается локально на карточке. ## Ограничения MVP