[Contract] CreateBankOperationDto: discriminated oneOf по kind #172

Closed
opened 2026-11-04 01:03:10 +03:00 by codex-bot · 0 comments
Owner

Аудит 2026-10-19, CQ-021, план п.20. Публичный контракт меняется по решению владельца; consumer обновляется в связанной frontend-задаче.

Результат

  • В OpenAPI request body создания операции описан как oneOf из четырёх вариантов (expense, topup, transfer, refund) с discriminator: kind; каждый вариант требует только свои поля. Образец — investmentScreenSchema в tbank-sync.dto.ts.
  • Runtime-валидация и проверки сервиса остаются, поэтому неверные комбинации по-прежнему дают 400 BANK_INVALID_INPUT, коды ошибок не меняются.
  • UpdateBankOperationDto (PATCH) не меняется.

AC

  • Сгенерированный openapi.json содержит oneOf/discriminator; test:openapi-contract проходит.
  • Поведение и ошибки POST не меняются (e2e bank-cards).
  • Ссылка на frontend-задачу, где копируется snapshot.
Аудит 2026-10-19, CQ-021, план п.20. Публичный контракт меняется по решению владельца; consumer обновляется в связанной frontend-задаче. ## Результат - В OpenAPI request body создания операции описан как `oneOf` из четырёх вариантов (expense, topup, transfer, refund) с `discriminator: kind`; каждый вариант требует только свои поля. Образец — `investmentScreenSchema` в tbank-sync.dto.ts. - Runtime-валидация и проверки сервиса остаются, поэтому неверные комбинации по-прежнему дают 400 `BANK_INVALID_INPUT`, коды ошибок не меняются. - `UpdateBankOperationDto` (PATCH) не меняется. ## AC - [ ] Сгенерированный openapi.json содержит oneOf/discriminator; `test:openapi-contract` проходит. - [ ] Поведение и ошибки POST не меняются (e2e bank-cards). - [ ] Ссылка на frontend-задачу, где копируется snapshot.
codex-bot added the Kind/Refactor label 2026-11-04 01:03:10 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/backend#172