35 lines
787 B
Python
35 lines
787 B
Python
from typing import Optional, List, TYPE_CHECKING
|
|
|
|
from sqlmodel import SQLModel, Field, Relationship
|
|
|
|
from backend.app.db.base_class import Base
|
|
|
|
from backend.app.models.teamplayers import TeamPlayerLink
|
|
|
|
if TYPE_CHECKING:
|
|
from backend.app.models.player import Player
|
|
|
|
class TeamBase(SQLModel):
|
|
teamname: Optional[str] = Field(nullable=False)
|
|
|
|
|
|
class Team(TeamBase, Base, table=True):
|
|
players: List["Player"] = Relationship(back_populates="teams",
|
|
link_model=TeamPlayerLink
|
|
)
|
|
|
|
|
|
class TeamCreate(TeamBase):
|
|
teamname: str
|
|
|
|
|
|
class TeamWithPlayers(TeamBase):
|
|
teamname: str
|
|
players: List["Player"]
|
|
|
|
|
|
class TeamUpdate(TeamBase):
|
|
teamname: str
|
|
|
|
|