Validation: Sponsor model, migration, CRUD endpoints (#324)

validation-324-2026-04-06 Doc

validation pass

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.