Project not found.
Validation: Create 16U Local Queens team (#422)
Validation: Create 16U Local Queens team (basketball-api#422)
Verdict
PASS with known follow-up debt (tracked in basketball-api#446).
Scope
- Forgejo issue: basketball-api#422
- PR merged: #427
- Board item: #927 on board-westside-basketball
- Deliverable: alembic migration 040 that inserts 16U Local Queens team row with contract_config cloned from LOCAL_CONFIG_16U pattern
What was validated in prod
- Migration applied cleanly — alembic_version = 040 on basketball-api pod via
kubectl exec ... psql -c "SELECT version_num FROM alembic_version;" - Row created —
SELECT id, name FROM teams WHERE name = '16U Local Queens'returned team id 12 - contract_config JSONB populated — verified structure matches LOCAL_CONFIG_16U pattern (variant=local, monthly_fee_default=200, Mon+Fri BWill practices, no tournaments)
- End-to-end use — Jacelyn Bronson successfully moved to team 12 via basketball-api#425 contract-offer endpoint, audit log row written
- tenant_id — correctly set to Westside Kings & Queens tenant (dynamic lookup by slug, not hardcoded)
- division — set to 'girls' correctly
Known follow-up debt
Migration 040 inserted
age_group = 'U16' which triggered a latent SQLAlchemy LookupError on read (Python enum names lowercase, values uppercase — SQLAlchemy reads by name). Mitigated by UPDATE teams SET age_group = NULL WHERE id = 12 — matches the 7 other teams which all have NULL age_group. The core migration goal (team exists, contract_config correct) is unaffected. Root cause tracked separately in basketball-api#446.Why this is still PASS, not PARTIAL
The migration delivered exactly what the ticket specified — a 16U Local Queens team row with correct contract_config. The age_group enum bug is a pre-existing Python/Postgres schema mismatch that this migration simply happened to be the first to exercise. That's a separate defect, not a scope failure of #422.
Related
- basketball-api#425 (contract-offer endpoint) — used the new team for Jacelyn's tier change
- basketball-api#446 (AgeGroup enum mismatch) — the latent bug this migration surfaced
- basketball-api#424 (Marcus batch umbrella) — consumer of this team