Adds sport-agnostic match data infrastructure: - matchStatusEnum + season_matches + match_sub_games tables in schema - externalSeasonId column on sports_seasons for API linkage - Drizzle migration 0120_tidy_invaders.sql - season-match model (upsert w/ onConflictDoUpdate, queries by event/season/stage) - CS2 admin: Swiss rounds read-only section in cs2-setup + new manual swiss-matches route - 7 unit tests for model (upsert conflict, null stage/round for non-CS2 sports, bulk, sub-games) - Plan doc committed at docs/plans/match-sync-display.md for cross-session reference https://claude.ai/code/session_01WUUM7uWzFoSkGcZRhnEKG6 |
||
|---|---|---|
| .. | ||
| components | ||
| contexts | ||
| hooks | ||
| lib | ||
| models | ||
| routes | ||
| services | ||
| test | ||
| types | ||
| utils | ||
| welcome | ||
| app.css | ||
| entry.client.tsx | ||
| entry.server.tsx | ||
| root.tsx | ||
| routes.ts | ||