from __future__ import annotations from decimal import Decimal ROLES = [ {"name": "playmaker", "slug": "playmaker"}, {"name": "shooting wing", "slug": "shooting-wing"}, {"name": "rim protector", "slug": "rim-protector"}, {"name": "stretch four", "slug": "stretch-four"}, {"name": "6th man", "slug": "6th-man"}, ] SPECIALTIES = [ {"name": "ball handling", "slug": "ball-handling"}, {"name": "off ball", "slug": "off-ball"}, {"name": "defense", "slug": "defense"}, {"name": "clutch", "slug": "clutch"}, {"name": "post", "slug": "post"}, ] COMPETITIONS = [ {"name": "Euro League", "country": "EU", "level": "top"}, {"name": "Italian Serie A", "country": "IT", "level": "top"}, {"name": "Spanish ACB", "country": "ES", "level": "top"}, ] TEAMS = [ {"name": "Milan Lions", "country": "IT"}, {"name": "Rome Falcons", "country": "IT"}, {"name": "Madrid Waves", "country": "ES"}, {"name": "Berlin Towers", "country": "DE"}, ] SEASONS = [ {"name": "2023-2024", "start_year": 2023, "end_year": 2024}, {"name": "2024-2025", "start_year": 2024, "end_year": 2025}, {"name": "2025-2026", "start_year": 2025, "end_year": 2026}, ] PLAYERS = [ { "full_name": "Marco Guard", "first_name": "Marco", "last_name": "Guard", "birth_date": "2002-01-01", "nationality": "IT", "height_cm": Decimal("188.00"), "weight_kg": Decimal("82.00"), "wingspan_cm": Decimal("194.00"), "position": "PG", "roles": ["playmaker"], "specialties": ["ball handling", "clutch"], "contexts": [ { "season": "2025-2026", "team": ("Milan Lions", "IT"), "competition": "Euro League", "stats": { "points": Decimal("16.00"), "assists": Decimal("8.20"), "steals": Decimal("1.90"), "turnovers": Decimal("2.40"), "blocks": Decimal("0.20"), "efg_pct": Decimal("53.40"), "ts_pct": Decimal("59.80"), "plus_minus": Decimal("4.60"), "offensive_rating": Decimal("114.00"), "defensive_rating": Decimal("105.00"), }, }, { "season": "2024-2025", "team": ("Rome Falcons", "IT"), "competition": "Italian Serie A", "stats": { "points": Decimal("13.20"), "assists": Decimal("6.90"), "steals": Decimal("1.40"), "turnovers": Decimal("2.90"), "blocks": Decimal("0.10"), "efg_pct": Decimal("49.80"), "ts_pct": Decimal("55.10"), "plus_minus": Decimal("1.20"), "offensive_rating": Decimal("109.00"), "defensive_rating": Decimal("108.00"), }, }, ], }, { "full_name": "Luca Wing", "first_name": "Luca", "last_name": "Wing", "birth_date": "1999-02-14", "nationality": "IT", "height_cm": Decimal("201.00"), "weight_kg": Decimal("93.00"), "wingspan_cm": Decimal("208.00"), "position": "SF", "roles": ["shooting wing"], "specialties": ["off ball", "clutch"], "contexts": [ { "season": "2025-2026", "team": ("Madrid Waves", "ES"), "competition": "Spanish ACB", "stats": { "points": Decimal("17.40"), "assists": Decimal("2.60"), "steals": Decimal("1.30"), "turnovers": Decimal("1.70"), "blocks": Decimal("0.60"), "efg_pct": Decimal("57.20"), "ts_pct": Decimal("62.40"), "plus_minus": Decimal("3.10"), "offensive_rating": Decimal("118.00"), "defensive_rating": Decimal("107.00"), }, } ], }, { "full_name": "Niko Anchor", "first_name": "Niko", "last_name": "Anchor", "birth_date": "1998-07-03", "nationality": "DE", "height_cm": Decimal("211.00"), "weight_kg": Decimal("109.00"), "wingspan_cm": Decimal("221.00"), "position": "C", "roles": ["rim protector"], "specialties": ["defense", "post"], "contexts": [ { "season": "2025-2026", "team": ("Berlin Towers", "DE"), "competition": "Euro League", "stats": { "points": Decimal("11.30"), "assists": Decimal("1.80"), "steals": Decimal("0.90"), "turnovers": Decimal("1.80"), "blocks": Decimal("2.40"), "efg_pct": Decimal("58.30"), "ts_pct": Decimal("61.10"), "plus_minus": Decimal("5.20"), "offensive_rating": Decimal("111.00"), "defensive_rating": Decimal("101.00"), }, } ], }, { "full_name": "Sandro Forward", "first_name": "Sandro", "last_name": "Forward", "birth_date": "2001-09-20", "nationality": "IT", "height_cm": Decimal("206.00"), "weight_kg": Decimal("98.00"), "wingspan_cm": Decimal("214.00"), "position": "PF", "roles": ["stretch four"], "specialties": ["off ball"], "contexts": [ { "season": "2025-2026", "team": ("Rome Falcons", "IT"), "competition": "Italian Serie A", "stats": { "points": Decimal("15.10"), "assists": Decimal("2.90"), "steals": Decimal("0.80"), "turnovers": Decimal("1.60"), "blocks": Decimal("1.10"), "efg_pct": Decimal("56.40"), "ts_pct": Decimal("60.20"), "plus_minus": Decimal("2.70"), "offensive_rating": Decimal("116.00"), "defensive_rating": Decimal("109.00"), }, } ], }, { "full_name": "Jalen Spark", "first_name": "Jalen", "last_name": "Spark", "birth_date": "2000-11-11", "nationality": "US", "height_cm": Decimal("193.00"), "weight_kg": Decimal("87.00"), "wingspan_cm": Decimal("199.00"), "position": "SG", "roles": ["6th man"], "specialties": ["ball handling", "off ball"], "contexts": [ { "season": "2024-2025", "team": ("Milan Lions", "IT"), "competition": "Italian Serie A", "stats": { "points": Decimal("18.60"), "assists": Decimal("3.40"), "steals": Decimal("1.10"), "turnovers": Decimal("2.20"), "blocks": Decimal("0.30"), "efg_pct": Decimal("54.10"), "ts_pct": Decimal("58.70"), "plus_minus": Decimal("1.80"), "offensive_rating": Decimal("113.00"), "defensive_rating": Decimal("111.00"), }, } ], }, ]