7.2 KiB
7.2 KiB
Календарь событий и прогноз будущих выплат брокерского счёта — задачи
Статус: реализовано (1-я версия, read-only, T-Bank); доработка UX и смешанного календаря завершена
Связанные документы:
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-контракт. (Done: quality-gate фича исправила OpenAPI, types.ts сгенерирован через codegen, все типы событий брокера присутствуют.)
6. Интерфейс overview
- Добавить overview-виджет ближайших событий для выбранного счёта.
- Показать не более 5 ближайших событий.
- Добавить ссылку на полную вкладку
События. - Реализовать loading, empty и local error state без поломки overview.
7. Вкладка События
- Добавить новый раздел
СобытиявBrokerAccountLayout. - Добавить маршрут
/broker/:accountId/events. - Реализовать выбор диапазона дат.
- Добавить два TextField[type=date] из дизайн-системы на страницу событий.
- Синхронизировать from/to с URL-параметрами (useSearchParams).
- dayjs для валидации, форматирования и дефолтов (today–today+7d).
- Валидация to >= from с показом ошибки под полем.
- Реализовать summary по выбранному периоду.
- Реализовать список событий с признаком
estimate. - Разделить денежные и неденежные события на уровне представления. (Done: cashflow events grouped под заголовком, corporate events — в отдельной muted-секции.)
8. Frontend tests
- Покрыть hook событий тестами query lifecycle.
- Покрыть overview-виджет сценариями loading, empty, error и success.
- Покрыть страницу
Событиясменой диапазона, отображением summary и пустым состоянием. - Проверить наличие новой вкладки в навигации счёта.
9. Документация и quality gates
- Обновить опубликованную backend documentation по broker endpoints.
(Done:
caching.mdобновлён — добавлен CACHE_TBANK_EVENTS_TTL в таблицу и key prefixes.) - Прогнать 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, если менялась опубликованная документация.
(Done:
caching.mdобновлён, docs build проверен.) - Отметить roadmap и связанные SDD-статусы.
10. Follow-up: UX фильтров и прошедшие события
- Согласовать UX-дизайн доработки с пользователем.
- Создать feature branch
codex/broker-events-calendar-ux. - Обновить
spec.mdпод смешанный календарь факта и прогноза. - Обновить
plan.mdпод backend/frontend реализацию доработки. - Прогнать baseline tests перед реализацией.
- Расширить backend query параметром
types. - Расширить backend response полями
source,actualAmount, nullableestimateModeи раздельным summary. - Добавить фактические прошедшие события из операций T-Bank.
- Добавить фильтрацию нескольких типов событий.
- Покрыть backend tests для
types, actual events, summary и controller forwarding. - Обновить frontend response/query types.
- Перевести страницу
Событияна applied filters + draft filters + кнопкуПоказать. - Добавить multi-select типов событий.
- Отобразить
Факт/Прогноз,Поступилои зелёное выделение фактических выплат. - Покрыть frontend tests для нового UX и actual events.
- Прогнать финальные проверки затронутых backend/frontend пакетов.