Аудит 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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Аудит 2026-10-19, CQ-021, план п.20. Публичный контракт меняется по решению владельца; consumer обновляется в связанной frontend-задаче.
Результат
oneOfиз четырёх вариантов (expense, topup, transfer, refund) сdiscriminator: kind; каждый вариант требует только свои поля. Образец —investmentScreenSchemaв tbank-sync.dto.ts.BANK_INVALID_INPUT, коды ошибок не меняются.UpdateBankOperationDto(PATCH) не меняется.AC
test:openapi-contractпроходит.