Sergey Krylov 7b1d649853
Some checks failed
CI / ci (pull_request) Failing after 2m48s
CI / ci (push) Failing after 2m44s
docs: add broker events and payouts feature docs
2026-06-21 21:22:56 +03:00

79 lines
4.6 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.

# Календарь событий и прогноз будущих выплат брокерского счёта — задачи
Статус: запланировано
Связанные документы:
- [Epic](../../epics/BrokerPortfolio.md)
- [Spec](spec.md)
- [Plan](plan.md)
## 1. Подготовка и gate
- [ ] Получить отдельное подтверждение `spec.md`, `plan.md` и `tasks.md` перед началом кода.
- [ ] Подтвердить, что первая версия ограничена T-Bank-сценарием и расчётом по текущим позициям.
- [ ] Зафиксировать, что follow-up по historical entitlement, налогам и полной купонной сетке не
входят в первую реализацию.
## 2. Backend contract
- [ ] Добавить новый broker endpoint событий с обязательными параметрами `from` и `to`.
- [ ] Описать Swagger DTO для query, response item, summary и envelope.
- [ ] Синхронизировать backend internal types для списка событий и summary.
## 3. Backend aggregation
- [ ] Добавить `BrokerEventsService` в `TBankModule`.
- [ ] Собрать текущие позиции счёта через существующий backend path без frontend-композиции.
- [ ] Построить dividend events по MOEX dividend data.
- [ ] Построить coupon, maturity и offer events по MOEX bond enrichment.
- [ ] Рассчитывать `estimatedAmount` только там, где для этого достаточно данных.
- [ ] Реализовать best-effort деградацию по отдельным инструментам.
- [ ] Добавить кэширование результата по `accountId + from + to`.
## 4. Backend tests
- [ ] Покрыть дивиденды, купоны, погашения и оферты unit-тестами.
- [ ] Проверить включительные границы диапазона дат.
- [ ] Проверить partial-failure сценарий, где один инструмент не ломает весь ответ.
- [ ] Проверить controller response shape и валидацию query.
## 5. Frontend data layer
- [ ] Добавить entity/hook для чтения broker events.
- [ ] Добавить handwritten response types для событий и summary.
- [ ] Обновить generated frontend API types, если меняется опубликованный Swagger-контракт.
## 6. Интерфейс overview
- [ ] Добавить overview-виджет ближайших событий для выбранного счёта.
- [ ] Показать не более 5 ближайших событий.
- [ ] Добавить ссылку на полную вкладку `События`.
- [ ] Реализовать loading, empty и local error state без поломки overview.
## 7. Вкладка `События`
- [ ] Добавить новый раздел `События` в `BrokerAccountLayout`.
- [ ] Добавить маршрут `/broker/:accountId/events`.
- [ ] Реализовать выбор диапазона дат.
- [ ] Реализовать summary по выбранному периоду.
- [ ] Реализовать список событий с признаком `estimate`.
- [ ] Разделить денежные и неденежные события на уровне представления.
## 8. Frontend tests
- [ ] Покрыть hook событий тестами query lifecycle.
- [ ] Покрыть overview-виджет сценариями loading, empty, error и success.
- [ ] Покрыть страницу `События` сменой диапазона, отображением summary и пустым состоянием.
- [ ] Проверить наличие новой вкладки в навигации счёта.
## 9. Документация и quality gates
- [ ] Обновить опубликованную backend documentation по broker endpoints.
- [ ] Прогнать backend tests.
- [ ] Прогнать frontend tests.
- [ ] Прогнать backend build.
- [ ] Прогнать frontend build.
- [ ] Прогнать docs build, если менялась опубликованная документация.
- [ ] Отметить roadmap и связанные SDD-статусы только после полной проверки реализации.