Summary
Replace thin mock/Prisma tournament fragments with a full lifecycle service: create tournament, atomic joins, lock entries, settle based on linked rounds, and payout winners.
Why this matters
Tournaments are campaign-visible features but still lack a coherent end-to-end domain workflow.
Where to work
src/services/tournament.service.ts
src/routes/tournaments.routes.ts
- Prisma
Tournament / participants
- seed scripts
What to implement
- Model tournament states and transitions.
- Implement create/list/join/lock/settle endpoints or jobs.
- Tie settlement to resolved rounds/leaderboard rules.
- Atomic join capacity (already partially done) extended to settlement.
- Integration tests for full happy path + full tournament.
Acceptance criteria
Done when
Tournaments work as a complete product flow, not isolated endpoints.
Metadata
| Field |
Value |
| Difficulty |
advanced |
| Complexity |
high |
| Good first contribution? |
no |
Summary
Replace thin mock/Prisma tournament fragments with a full lifecycle service: create tournament, atomic joins, lock entries, settle based on linked rounds, and payout winners.
Why this matters
Tournaments are campaign-visible features but still lack a coherent end-to-end domain workflow.
Where to work
src/services/tournament.service.tssrc/routes/tournaments.routes.tsTournament/ participantsWhat to implement
Acceptance criteria
Done when
Tournaments work as a complete product flow, not isolated endpoints.
Metadata