From 2985def574f1c22f9c41f6755b802342fafb30cd Mon Sep 17 00:00:00 2001 From: Sergey Krylov Date: Wed, 9 Sep 2026 10:31:08 +0300 Subject: [PATCH] docs: describe compact portfolio totals --- features/portfolio-view.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/features/portfolio-view.md b/features/portfolio-view.md index ed2c443..30b985c 100644 --- a/features/portfolio-view.md +++ b/features/portfolio-view.md @@ -43,6 +43,28 @@ Metadata инструмента ищется сначала по instrument UID, Первый запрос крупного Portfolio может выполнить много metadata lookup. Если настроенный per-instance лимит T-Bank RPC недостаточен и локальная очередь переполняется, увеличьте `TBANK_RATE_LIMIT_PER_SECOND` в рамках upstream-квоты; после успешного lookup metadata остаётся в 24-часовом in-memory cache. +## Валютная сводка + +Над составом портфеля каждый полученный валютный итог показан отдельной +компактной карточкой. На узком экране карточки идут в одну колонку, на широком +— в две или три. Метка и сумма расположены в одной строке, пока хватает места; +длинная сумма переносится под метку и при необходимости на несколько строк +без обрезания и горизонтальной прокрутки. + +Для RUB, USD и EUR сводка использует знаки ₽, $ и € в метке и после суммы. +Вспомогательным технологиям доступны названия «Российский рубль», «Доллар США» +и «Евро» вместе с полным значением. Остальные валюты сохраняют исходный ISO-код, +поэтому USD и CAD остаются различимыми. Карточки не интерактивны. + +Суммы форматируются из decimal strings с пробелами между разрядами и десятичной +запятой: сохраняются все цифры, дробные нули и отрицательный знак, включая +`-0,5`. Округления, сокращения до тысяч или миллионов и валютной конвертации нет. +Каждый итог уже включает позиции и доступные деньги своей валюты; frontend +не добавляет остатки повторно и не считает межвалютную общую стоимость. +Позиции без вычислимой стоимости не превращаются в нулевые суммы, поэтому +сводка не обещает полной оценки портфеля. Отсутствующие валюты не дополняются +карточками; при пустом списке итогов доступный состав портфеля остаётся видимым. + ## Свежесть и ошибки При первом открытии Portfolio frontend показывает structural skeleton заголовка, @@ -50,6 +72,12 @@ Metadata инструмента ищется сначала по instrument UID, recent operations и future events заменяются skeleton только внутри своего section; Portfolio и соседние sections остаются доступными. Skeleton placeholders декоративны, не содержат пользовательских данных и не получают keyboard focus. +Область сводки содержит три формы компактных карточек в той же адаптивной сетке; +это не обещает три валюты в ответе. Загрузка имеет доступное busy-обозначение. +При фоновом обновлении и его ошибке сводка сохраняет прежние суммы и время +успешного получения в UTC. Повторная попытка доступна с клавиатуры; новый +успешный ответ обновляет суммы и время и снимает клиентскую ошибку, а server-side +stale-предупреждение зависит от `isStale` нового ответа. - Backend хранит успешный полный Snapshot для пары User и Brokerage Account свежим 30 секунд. - До cache hit backend разрешает текущее persisted T-Bank connection. Snapshot повторно используется только внутри непрозрачной generation этого connection; при cache miss доступ к Brokerage Account проверяется до финансовых T-Bank RPC.