bgg_api/src/classes/play_classes.py

27 lines
925 B
Python
Raw Normal View History

from sqlmodel import Field, SQLModel, Relationship
from typing import Union
2024-08-02 11:43:30 +02:00
from datetime import date
class PlayerPlayLink(SQLModel, table=True):
player_name: str | None = Field(default=None, foreign_key="playplayer.name", primary_key=True)
play_id: int | None = Field(default=None, foreign_key="play.id", primary_key=True)
class PlayPlayer(SQLModel, table=True):
name: str | None = Field(default=None, primary_key=True)
2024-08-02 11:43:30 +02:00
username: str
score: Union[float, None]
2024-08-02 11:51:25 +02:00
first_play : bool
has_won : bool
2024-08-02 11:32:56 +02:00
plays: list["Play"] = Relationship(back_populates="players", link_model=PlayerPlayLink)
class Play(SQLModel, table=True):
id: int| None = Field(default=None, primary_key=True)
2024-08-02 11:43:30 +02:00
boardgame_id: int
play_date: date
2024-08-02 11:43:30 +02:00
duration: int #In minutes
ignore_for_stats : bool
location: str
players: list[PlayPlayer] = Relationship(back_populates="plays", link_model=PlayerPlayLink)