# Глоссарий домена ## User Локальный владелец данных WealthLedger, идентифицируемый `id` и нормализованным email. User владеет Session, T-Bank connection и видит только свои Brokerage Accounts. _Не использовать_: клиент T-Bank, инвестор T-Bank. ## Session Локальная authenticated-сессия User: короткоживущий access token в браузере и server-side refresh token rotation через cookie. Session не является T-Bank connection и не подтверждает доступ к Brokerage Account без текущего Bearer token. _Не использовать_: T-Bank сессия, browser session. ## Money Денежная сумма в одной ISO-валюте, передаваемая как `{ currency, value }`, где `value` — decimal string без экспоненциальной записи. Backend выполняет точные операции, frontend форматирует Money для отображения. _Не использовать_: number amount, MoneyDto как доменный термин. ## T-Bank connection Единственное принадлежащее User подключение к T-Bank Invest, содержащее зашифрованный token для server-side запросов. _Не использовать_: аккаунт T-Bank, авторизация T-Bank. ## Brokerage Account Открытый поддерживаемый инвестиционный счёт T-Bank, доступный через T-Bank connection: брокерский счёт, ИИС, Инвесткопилка или фонд денежного рынка. _Не использовать_: счёт T-Bank, банковский счёт. ## Investment Account Type Нормализованная категория Brokerage Account, независимая от upstream enum T-Bank: `BROKERAGE`, `INDIVIDUAL_INVESTMENT`, `INVEST_BOX` или `MONEY_MARKET_FUND`. _Не использовать_: тип аккаунта T-Bank, protobuf type. ## Portfolio Текущее нормализованное состояние инвестиций одного Brokerage Account, включающее позиции, доступные денежные остатки и итоги по каждой валюте. _Не использовать_: общий портфель, баланс счёта. ## Portfolio Position Ненулевой обычный инвестиционный актив в составе Portfolio с количеством и доступными оценочными показателями. _Не использовать_: валютная позиция, виртуальная позиция. ## Portfolio Position Type Нормализованный display type Portfolio Position, полученный из upstream instrument type: `STOCK`, `BOND`, `FUND`, `CURRENCY`, `FUTURE`, `OPTION`, `STRUCTURED_NOTE`, `DIGITAL_FINANCIAL_ASSET` или `OTHER`. _Не использовать_: upstream instrument type как доменный enum. ## Instrument Ценная бумага или иной торгуемый актив T-Bank, на который ссылается Portfolio Position через FIGI или instrument UID. Metadata Instrument обогащают отображение Position, но не определяют количество или стоимость. _Не использовать_: бумага, тикер, актив позиции. ## Instrument Logo Имя файла бренда T-Bank для отображения Instrument в интерфейсе; presentation metadata, которая не влияет на количество или стоимость позиции. Изображение загружается frontend из публичного брендового CDN без авторизации; при отсутствии имени или ошибке загрузки используется фолбэк с первой буквой отображаемого имени. _Не использовать_: аватар актива, иконка бумаги. ## Cash Balance Ненулевой доступный денежный остаток Portfolio в одной валюте; не является Portfolio Position и передаётся отдельно от `positions` в `cashBalances`. _Не использовать_: валютная позиция, заблокированные средства. ## Portfolio Snapshot Полный успешно полученный состав Portfolio на определённый момент времени, который может быть свежим или устаревшим fallback-представлением. _Не использовать_: история портфеля, snapshot для графика. ## Client Cached Snapshot Последний успешно полученный frontend-ответ React Query, который остаётся видимым во время фонового обновления или после его ошибки. Не является server-side fallback и не использует поле `Portfolio.isStale`. _Не использовать_: устаревший Portfolio Snapshot, fallback портфеля. ## Account Ledger Упорядоченная read-only история исполненных операций одного Brokerage Account, отражающая фактические денежные и инструментальные движения без рыночной переоценки или расчёта остатка после операции. _Не использовать_: история Portfolio, баланс счёта. ## Ledger Entry Нормализованное представление одной операции T-Bank в Account Ledger; хранит исходные суммы и доступные детали операции, не создавая синтетических записей для комиссии сделки. API/code сохраняют legacy names `BrokerageOperationDto`, `BrokerageOperationsPageDto` и `/operations`; в доменной документации primary term — Ledger Entry. _Не использовать_: проводка, рассчитанная операция. ## Operation Category Нормализованная категория Ledger Entry для фильтрации и отображения: `trade`, `income`, `tax`, `fee`, `transfer` или `other`. _Не использовать_: upstream operation type как category. ## Ledger Page Cache Кэш страницы Account Ledger, отделённый от кэша отдельных операций. _Не использовать_: operations cache, кэш отдельных операций. ## Ledger Page Cache Key Каноническая идентичность страницы Ledger Page Cache: User, Brokerage Account, нормализованные диапазон и categories, opaque upstream cursor и limit. _Не использовать_: сырой URL query, ключ отдельной Ledger Entry. ## Concurrent Refresh Attempt Два или более перекрывающихся запроса с одним ещё действительным refresh token одной Session; один становится Refresh Winner, остальные — Refresh Loser и получают `401`, не отзывая Session победителя. _Не использовать_: повторное использование refresh token, последовательный refresh. ## Superseded Refresh Token Refresh token, который перестал быть действительным после успешной ротации Session; его предъявление получает `401`, но само по себе не отзывает Session. _Не использовать_: активный refresh token, признак взлома сессии. ## Future Cash Event Прогнозируемое на ближайший период денежное или связанное корпоративное событие одного Brokerage Account, рассчитанное по текущей Portfolio Position; не является исполненной Ledger Entry. API/code сохраняют legacy names `UpcomingEventDto`, `UpcomingEventsDto`, `/events` и frontend `BrokerageEvent`; в доменной документации primary term — Future Cash Event. _Не использовать_: будущая операция, гарантированная выплата. ## Future Cash Event Type Нормализованный тип Future Cash Event: `coupon`, `dividend`, `maturity` или `offer`. _Не использовать_: upstream dividend type, MOEX row name.