feat: add contract_overrides JSONB column to players table #321
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/basketball-api#321
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Sub-ticket of
forgejo_admin/westside-contracts#34— data-driven contract rendering system. Wave 1 (independent).Repo
forgejo_admin/basketball-apiUser Story
As the contract rendering system, I need per-player override data so that individual players can have custom deals (different tournaments, practice schedules, fees) that differ from their team's defaults.
Context
Kiana Sikander (player_id=184, 17U Elite Queens) agreed to $100/month, 1 practice/week, Arizona + Vegas tournaments only. The team default is $200/month, 3 practices/week, 5 tournaments. A sparse JSONB overrides column lets the frontend merge player-specific terms on top of team defaults.
File Targets
alembic/versions/NNN_add_contract_overrides_to_players.py— new migrationsrc/basketball_api/models.py— addcontract_overridesfield to Player modelFiles NOT to touch:
src/basketball_api/routes/— no API changes in this ticketAcceptance Criteria
contract_overrides JSONB DEFAULT NULLcolumn exists on players tablecontract_overrides: Mapped[dict | None]fieldTest Expectations
alembic upgrade headalembic downgrade -1pytest tests/Constraints
sqlalchemy.dialects.postgresql.JSONBtypeChecklist
Related
westside-basketball— parent projectforgejo_admin/westside-contracts#34— parent issueScope Review: NEEDS_REFINEMENT
Review note:
review-773-2026-04-03Template complete, file targets verified, acceptance criteria testable, no decomposition needed. One traceability gap:
[SCOPE]Architecture notearch-contractsdoes not exist in pal-e-docs. Multiple board items referencearch:contracts— backing note needed.Agent picked up this ticket.