79 lines
4.6 KiB
Markdown
79 lines
4.6 KiB
Markdown
# Календарь событий и прогноз будущих выплат брокерского счёта — задачи
|
||
|
||
Статус: запланировано
|
||
|
||
Связанные документы:
|
||
|
||
- [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-статусы только после полной проверки реализации.
|