fix(investments): align roles and date contracts #37

Merged
codex-bot merged 1 commits from codex/investment-contracts into develop 2026-09-27 12:05:57 +03:00
Owner

Доходы больше не требуют от клиента угадывать смысл зависимости по позиции в массиве. Контракт GET и screen sync согласован для календарных дат, включая полный последний день диапазона.

  • Income metadata содержит роли selected, previous, year, в том числе для недоступного сравнения. Прежний порядок массива сохранён для совместимости.
  • OpenAPI разделяет income/events (date) и остальные экраны с датами операций (date-time); для income/events обязателен accountId.
  • Income использует включительные даты Europe/Moscow, events — UTC. Backend переводит их в полуоткрытые интервалы; events поддерживает односторонние диапазоны.
  • Согласованы planner, repository и преобразование дат на границе T-Bank. Миграции сохранённых данных не нужны.

Проверено: npm run verify — 37 suites / 200 tests; configured HTTP/OpenAPI через node test/sqlite.cjs openapi-contract.e2e-spec.ts tbank-screen-sync.e2e-spec.ts upcoming-events.e2e-spec.ts tbank-income-local.e2e-spec.ts — 53 tests. Независимое semantic review и проверка staged diff пройдены.

Порядок выкладки: backend, затем frontend.

Связанный frontend PR: WealthLedger/frontend#39.

Доходы больше не требуют от клиента угадывать смысл зависимости по позиции в массиве. Контракт GET и screen sync согласован для календарных дат, включая полный последний день диапазона. - Income metadata содержит роли `selected`, `previous`, `year`, в том числе для недоступного сравнения. Прежний порядок массива сохранён для совместимости. - OpenAPI разделяет income/events (`date`) и остальные экраны с датами операций (`date-time`); для income/events обязателен `accountId`. - Income использует включительные даты Europe/Moscow, events — UTC. Backend переводит их в полуоткрытые интервалы; events поддерживает односторонние диапазоны. - Согласованы planner, repository и преобразование дат на границе T-Bank. Миграции сохранённых данных не нужны. Проверено: `npm run verify` — 37 suites / 200 tests; configured HTTP/OpenAPI через `node test/sqlite.cjs openapi-contract.e2e-spec.ts tbank-screen-sync.e2e-spec.ts upcoming-events.e2e-spec.ts tbank-income-local.e2e-spec.ts` — 53 tests. Независимое semantic review и проверка staged diff пройдены. Порядок выкладки: backend, затем frontend. Связанный frontend PR: https://git.personal.ksv741.ru/WealthLedger/frontend/pulls/39.
codex-bot added 1 commit 2026-09-27 11:39:40 +03:00
fix(investments): align roles and date contracts
Backend security / security (push) Successful in 9s
Backend verify / verify (push) Successful in 10m23s
Backend security / security (pull_request) Successful in 8s
Backend verify / verify (pull_request) Successful in 10m39s
Conventional commits / commits (pull_request) Successful in 29s
516e43203e
Identify income dependencies by role and document screen-specific dates.
Convert inclusive calendar days into half-open source ranges while
preserving operation timestamps and existing stored coverage.
codex-bot scheduled this pull request to auto merge when all checks succeed 2026-09-27 11:50:56 +03:00
codex-bot merged commit 5d3835e796 into develop 2026-09-27 12:05:57 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/backend#37