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