Skip to content

Commit 412c762

Browse files
feat(s5): Modulr SEPA payout adapter + 7 WireMock tests (STA-152) (#156)
* feat(s5): infrastructure persistence — JPA entities, repos, adapters, 24 ITs (STA-149, STA-150) 3 JPA entities (PayoutOrder with @Version optimistic locking, StablecoinRedemption, OffRampTransaction with @JdbcTypeCode(SqlTypes.JSON) for JSONB), 3 Spring Data JPA repositories, 4 MapStruct mappers (including PayoutOrderEntityUpdater for in-place Hibernate update), 3 persistence adapters implementing domain ports, V2 migration adding BankAccount (4 cols) and MobileMoneyAccount (3 cols) to payout_orders. 24 integration tests: 13 PayoutOrder (CRUD, state machine happy/failure paths, unique constraints, findBy queries), 5 StablecoinRedemption (save, findById, findByPayoutId, ticker round-trip), 6 OffRampTransaction (append-only, JSONB round-trip, multiple per payout). 181 total tests (149 unit + 8 ArchUnit + 24 IT). Closes STA-149 Closes STA-150 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(s5): address CodeRabbit review — fail-fast mapper, scoped grants, ordered queries, new ITs (STA-150) - Fail-fast on partial bank/mobile columns in PayoutOrderPersistenceMapper - Scope sp_readonly GRANT to service-specific tables in V2 migration - Add deterministic ordering to OffRampTransactionJpaRepository (receivedAt ASC) - Add optimistic locking IT for PayoutOrderEntity @Version - Add FK constraint IT for StablecoinRedemption Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(s5): Circle USDC redemption adapter + 7 WireMock tests (STA-151) CircleRedemptionAdapter implements RedemptionGateway port via Circle Business Account Payouts API (POST /v1/businessAccount/payouts). Bearer API key auth, @CIRCUITBREAKER, HTTP/1.1. Package-private ACL DTOs. FallbackAdaptersConfig provides dev RedemptionGateway. 188 total tests (149 unit + 8 ArchUnit + 7 WireMock + 24 IT). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent c36e87b commit 412c762

0 file changed

File tree

    0 commit comments

    Comments
     (0)