From d39a9d3df08d068b0c5fba97cfb7bb0d5755f329 Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 26 Aug 2026 15:03:48 +0300 Subject: [PATCH] docs: describe improved ledger event rows --- features/brokerage-account-ledger.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/features/brokerage-account-ledger.md b/features/brokerage-account-ledger.md index 58aef80..9c4ae70 100644 --- a/features/brokerage-account-ledger.md +++ b/features/brokerage-account-ledger.md @@ -22,7 +22,7 @@ sequenceDiagram `GET /api/v1/brokerage-accounts/:accountId/operations` требует Bearer access token. Необязательные `from` и `to` задают включительный период; без периода запрос начинается с 1 января текущего года. `categories` принимает `trade`, `income`, `tax`, `fee`, `transfer`, `other`; `cursor` и `limit` управляют cursor-пагинацией. -Ответ передаёт `accountId`, `items`, `nextCursor`, `hasNext` и `observedAt`. Каждая `Ledger Entry` соответствует ровно одной операции T-Bank и содержит её тип, категорию, описание, дату, доступный инструмент, `payment`, `quantity`, `price`, `accruedInterest` и `commission`. +Ответ передаёт `accountId`, `items`, `nextCursor`, `hasNext` и `observedAt`. Каждая `Ledger Entry` соответствует ровно одной операции T-Bank и содержит её тип, категорию, описание, дату, доступный инструмент, nullable `logoName`, `payment`, `quantity`, `price`, `accruedInterest` и `commission`. `logoName` — presentation metadata: если она недоступна, это не меняет запись журнала. Деньги передаются decimal strings в исходной ISO-валюте. Frontend только форматирует значения. Комиссия сделки остаётся деталью той же записи; операции без `payment` отображаются как «Без движения денег». @@ -30,6 +30,7 @@ sequenceDiagram - Запрашиваются только исполненные операции T-Bank. - Полный журнал фильтруется по периоду и категориям, а изменение фильтра сбрасывает cursor-пагинацию. +- В полном журнале и пяти последних записях обзора одна и та же компактная строка показывает логотип инструмента либо буквенный fallback, описание операции, дату, инструмент, категорию и денежное движение. Положительная сумма обозначается как «Поступление» с `+`, отрицательная — как «Списание» с `−`; подпись и знак сохраняют значение независимо от цвета. - Полный журнал не показывает цену, количество, НКД и комиссию записи. - Backend хранит в памяти процесса до 100 страниц Account Ledger: свежая страница живёт до 30 секунд, а при переполнении вытесняется давно не использовавшаяся страница (LRU). Ключ включает пользователя, счёт, нормализованные период и categories, cursor и limit; отсутствующий `to` приводится к текущему 30-секундному bucket. Проверка подключения и доступа к счёту выполняется до выдачи кэшированной страницы. Ключ не включает версию T-Bank token, поэтому после успешной замены T-Bank connection для того же User, Brokerage Account и query уже сохранённая страница может оставаться видимой до истечения 30-секундного TTL. Операции не сохраняются и не синхронизируются локально. - Журнал не рассчитывает остаток после операции, суммарные доходы или налоги, историческую стоимость Portfolio, конвертацию валют и рыночные изменения цены.