Files
funman300 26b8e9efef
CI / Build, lint & test (push) Failing after 1m33s
Phase 11: FUT Champions mode and Division Rivals weekly rewards
FUT Champions (Weekend League):
- POST /fut-champs/start — open a new 30-match week (one active session at a time)
- GET /fut-champs — current session status with matches_remaining
- POST /fut-champs/:id/result — record a match; auto-completes and computes tier at 30
- POST /fut-champs/:id/claim — claim coins + pack reward (idempotent guard)
- GET /fut-champs/history — past sessions newest-first
- 11 reward tiers: Elite (27+ wins, 50k coins + icon pack) down to Bronze 1 (0 wins, 250 coins)

Division Rivals:
- POST /rivals/claim-weekly — claim weekly reward scaled by current division
- Week counter is monotonic (offline-safe, no real-time calendar dependency)
- Division 1-3 get a bonus pack alongside coins

Migration 0008 adds fut_champs_sessions table and two columns to seasons.
12 new integration tests — all 67 pass, clippy clean.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 17:06:18 -07:00

22 lines
816 B
SQL

-- Phase 11: FUT Champions / Weekend League sessions
CREATE TABLE IF NOT EXISTS fut_champs_sessions (
id TEXT PRIMARY KEY,
profile_id TEXT NOT NULL,
week_number INTEGER NOT NULL DEFAULT 1,
matches_played INTEGER NOT NULL DEFAULT 0,
wins INTEGER NOT NULL DEFAULT 0,
draws INTEGER NOT NULL DEFAULT 0,
losses INTEGER NOT NULL DEFAULT 0,
status TEXT NOT NULL DEFAULT 'active',
reward_tier TEXT,
reward_coins INTEGER,
reward_pack_id TEXT,
reward_claimed INTEGER NOT NULL DEFAULT 0,
started_at TEXT NOT NULL,
completed_at TEXT
);
-- Division Rivals: track when each profile last claimed their weekly reward
ALTER TABLE seasons ADD COLUMN rivals_week_claimed INTEGER NOT NULL DEFAULT 0;
ALTER TABLE seasons ADD COLUMN rivals_total_points INTEGER NOT NULL DEFAULT 0;