Summary
Move durable waiver, offer, and transaction state into Sprocket so that roster-admin workflows no longer depend on legacy MLEDB semantics.
Why
The remaining MLEDB bot workflows for transactions and waivers rely on legacy player/team state and Redis-managed offer/claim state. Sprocket needs to own the durable business state before those workflows can be safely migrated.
Relevant code
MLEDB/src/services/Transaction/TransactionService.ts
MLEDB/src/services/Waiver/WaiverService.ts
MLEDB/src/bot/commands/Management/Transactions.command.ts
MLEDB/src/bot/commands/Management/Waviers.command.ts
Scope
- Define what transaction state must persist in Sprocket:
- offers
- waiver claims
- release destinations
- suspension timers / restricted status where relevant
- Treat Redis as transient workflow state only.
- Add Sprocket APIs/services for creating, validating, and resolving those operations.
- Ensure Sprocket can drive the same league-policy checks currently enforced by the bot.
Acceptance criteria
- Durable waiver/transaction state is stored in Sprocket.
- Redis is no longer the only place where active transaction intent exists.
- The active roster/admin workflow can be executed against Sprocket data and policy checks.
- Legacy-only transaction state is no longer required for day-to-day operations.
Summary
Move durable waiver, offer, and transaction state into Sprocket so that roster-admin workflows no longer depend on legacy MLEDB semantics.
Why
The remaining MLEDB bot workflows for transactions and waivers rely on legacy player/team state and Redis-managed offer/claim state. Sprocket needs to own the durable business state before those workflows can be safely migrated.
Relevant code
MLEDB/src/services/Transaction/TransactionService.tsMLEDB/src/services/Waiver/WaiverService.tsMLEDB/src/bot/commands/Management/Transactions.command.tsMLEDB/src/bot/commands/Management/Waviers.command.tsScope
Acceptance criteria