Files
docs/features/brokerage-account-upcoming-events.md
T

34 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Будущие события брокерского счёта
Авторизованный пользователь видит до пяти ближайших событий на обзоре `/accounts/:accountId` и открывает полный список известных событий Brokerage Account, доступного через текущее T-Bank connection, на `/accounts/:accountId/events`. Ошибка или пустой результат блока на обзоре не заменяет Portfolio.
```mermaid
sequenceDiagram
participant U as User
participant F as Frontend
participant B as Backend
participant T as T-Bank gRPC
participant M as MOEX ISS
U->>F: Открывает будущие события
F->>B: GET /api/v1/brokerage-accounts/:accountId/events
B->>T: GetAccounts и GetPortfolio
B->>T: GetDividends (дивиденты по акциям)
B->>M: Получает события облигаций
B-->>F: Прогноз на 30 дней
F-->>U: Компактный список событий
```
## API
`GET /api/v1/brokerage-accounts/:accountId/events` требует Bearer access token. Ответ содержит `accountId`, `calculatedAt` и отсортированный по календарной дате список `events`.
Событие содержит `type` (`coupon`, `dividend`, `maturity`, `offer`), `date`, `dateKind`, идентификаторы и название Instrument, а также nullable `projectedAmount` как Money `{ currency, value }`. Для `offer` и неизвестных денежных условий сумма не создаётся искусственно и передаётся `null`. Дивиденд передаёт `dateKind: registry`: это дата закрытия реестра, а не гарантированная дата зачисления.
## Поведение и ограничения
- Период включает текущую календарную дату и следующие 30 дней.
- Суммы до налогов рассчитываются по текущему количеству бумаг на `calculatedAt`; они не учитывают будущие сделки или владение на дату реестра.
- Список не имеет фильтров, пагинации, конвертации валют и общего итога.
- Поддерживаются только известные события по доступным позициям: дивиденды по акциям из T-Bank `GetDividends` (дата фиксации реестра `record_date`, сумма `dividend_net` на бумагу; отменённые выплаты `Cancelled` не попадают в прогноз), а также купоны, полное погашение и оферты облигаций из MOEX `bondization`. Будущее частичное погашение и амортизация не синтезируются без надёжного расписания.
- Ошибка T-Bank или MOEX возвращает `503` без частичного списка. Инструмент без поддерживаемых данных не создаёт строку «нет данных».