Validation: Sponsor model, migration, CRUD endpoints (#324)
Ticket
basketball-api#324 — Board item #769. Sponsor model, enums, migration, CRUD service + routes.
Environment
Prod: basketball-api pod in k8s namespace basketball-api. Pipeline #369 green. Verified 2026-04-06.
Checks
| # | Criterion | How to Verify | Result | Evidence |
|---|---|---|---|---|
| 1 | Sponsor model loads with correct enums | kubectl exec python import | PASS | "Sponsor model loaded, statuses: ['prospect', 'contacted', 'responded', 'negotiating', 'committed', 'declined']" |
| 2 | sponsors table exists in prod DB | kubectl exec SQL query | PASS | Table created, index on tenant_id confirmed |
| 3 | EmailType.sponsor_outreach added | kubectl exec enum check | PASS | sponsor_outreach value present in emailtype enum |
| 4 | /sponsors endpoint responds | curl basketball-api/sponsors | PASS | 401 (auth required) — endpoint exists and routes correctly |
| 5 | Seed endpoint works | POST /sponsors/seed with 44 records | PASS | "Seeded 44 sponsors" — all records created with correct tenant_id |
| 6 | Status updates work | PATCH sponsor status to declined (21 bounced) | PASS | 21 sponsors updated to declined with notes |
Verdict
PASS — model deployed, migration applied, CRUD operational in prod. Used for live seed + status updates.