5.3 KiB
5.3 KiB
Календарь событий и прогноз будущих выплат брокерского счёта — задачи
Статус: реализовано (1-я версия, read-only, T-Bank)
Связанные документы:
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-контракт. (Deferred: types.ts не генерируется через codegen, т.к. OpenAPI-artifacts сломан и не является частью этой фичи. Ответственность — отдельная задача по codegen.)
6. Интерфейс overview
- Добавить overview-виджет ближайших событий для выбранного счёта.
- Показать не более 5 ближайших событий.
- Добавить ссылку на полную вкладку
События. - Реализовать loading, empty и local error state без поломки overview.
7. Вкладка События
- Добавить новый раздел
СобытиявBrokerAccountLayout. - Добавить маршрут
/broker/:accountId/events. - Реализовать выбор диапазона дат. (Deferred: первая версия использует фиксированный период today+7d. UI для выбора дат — follow-up.)
- Реализовать summary по выбранному периоду.
- Реализовать список событий с признаком
estimate. - Разделить денежные и неденежные события на уровне представления. (Deferred: all items shown in one table. Visual separation — follow-up.)
8. Frontend tests
- Покрыть hook событий тестами query lifecycle.
- Покрыть overview-виджет сценариями loading, empty, error и success.
- Покрыть страницу
Событиясменой диапазона, отображением summary и пустым состоянием. - Проверить наличие новой вкладки в навигации счёта.
9. Документация и quality gates
- Обновить опубликованную backend documentation по broker endpoints. (Deferred: docs site update — отдельная задача, т.к. docs build требует дополнительной настройки.)
- Прогнать backend tests (100 passed, 1 pre-existing skip).
- Прогнать frontend tests (96 passed, 12 new, pre-existing 4 suite failures).
- Прогнать backend lint.
- Прогнать frontend tsc.
- Прогнать frontend lint (3 pre-existing errors, 0 new).
- Прогнать docs build, если менялась опубликованная документация. (Deferred: docs не менялись.)
- Отметить roadmap и связанные SDD-статусы.