from typing import Optional, List, TYPE_CHECKING from sqlmodel import SQLModel, Field, Relationship from app.db.base_class import Base from app.models.teamplayers import TeamPlayerLink if TYPE_CHECKING: from 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