Coverage for models/leagues.py: 100.00%
28 statements
« prev ^ index » next coverage.py v7.10.6, created at 2026-04-15 17:36 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2026-04-15 17:36 +0000
1"""
2League and division-related Pydantic models.
3"""
5from datetime import datetime
7from pydantic import BaseModel
10class League(BaseModel):
11 """Model for league data."""
13 id: int
14 name: str
15 description: str | None = None
16 sport_type: str = "soccer"
17 is_active: bool = True
18 created_at: datetime | None = None
19 updated_at: datetime | None = None
22class LeagueCreate(BaseModel):
23 """Model for creating a new league."""
25 name: str
26 description: str | None = None
27 sport_type: str = "soccer"
28 is_active: bool = True
31class LeagueUpdate(BaseModel):
32 """Model for updating league information."""
34 name: str | None = None
35 description: str | None = None
36 sport_type: str | None = None
37 is_active: bool | None = None
40class DivisionCreate(BaseModel):
41 """Model for creating a new division."""
43 name: str
44 description: str | None = None
45 league_id: int # Required: divisions must belong to a league
48class DivisionUpdate(BaseModel):
49 """Model for updating division information."""
51 name: str | None = None
52 description: str | None = None
53 league_id: int | None = None # Optional for updates