12 — Data model
Data Model (Core Entities)
Eleven entities carry the product.
| Entity | Fields & purpose |
|---|---|
| User | Account, roles (fighter, referee, judge, fan, admin), language (EN/ES), location, age/verification status. |
| FighterProfile | Nickname, photo, federation(s), tier, record (W/L/draw/streak), availability, home region, public stats. |
| Pillow | Serial code, model, owner, registration status, fights used in. Serial links to official fights (anti-cheat). |
| Fight | Tier, fighters (A/B), type (home/official), status (proposed → confirmed → in_progress → result_pending → recorded / disputed), timestamps. |
| FightResult | Winner, loser, mutual agreement flag, referee validation, judge session reference. |
| JudgeSession / JudgeScore | Fight id, judge link token, per-round rule-button scores, final tally. |
| DigitalFighterCard | Fighter id, series, edition number (e.g. 042/100), print status, owner, price. |
| Tip / Payout | Sender, fighter, amount, platform fee, payout status. |
| PowerUpPurchase | Type, buyer, target, expires_at, effect applied. |
| Federation | Abstraction layer: PFC today; boxing/MMA rookies later. Each federation carries its own name, rules template, pillow/equipment model and admin scope. |
| Content | Bilingual strings and rule text per federation and per locale. |