From 9181f5a6010dcca335a82c2148fb85100a3a01ad Mon Sep 17 00:00:00 2001 From: Yarne Coppens Date: Thu, 22 Aug 2024 09:25:19 +0200 Subject: [PATCH] Created Public classes --- src/classes/boardgame_classes.py | 31 ++++++++++++++++++++++++++++--- src/modules/db_connection.py | 12 ++++++------ 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/classes/boardgame_classes.py b/src/classes/boardgame_classes.py index 83493bf..d48063e 100644 --- a/src/classes/boardgame_classes.py +++ b/src/classes/boardgame_classes.py @@ -59,9 +59,9 @@ class BoardGame(BoardGameBase, table=True): class BoardGamePublic(BoardGameBase): id: int designers: list["DesignerPublicNoGames"] - expansion_info: Optional["ExpansionInfo"] - owned_info: Optional["OwnedInfo"] - wishlist_info: Optional["WishlistInfo"] + expansion_info: Optional["ExpansionInfoPublicNoGame"] + owned_info: Optional["OwnedInfoPublicNoGame"] + wishlist_info: Optional["WishlistInfoPublicNoGame"] class ExpansionInfo(SQLModel, table=True): @@ -75,6 +75,13 @@ class ExpansionInfo(SQLModel, table=True): back_populates="expansion_info" ) +class ExpansionInfoPublic(SQLModel): + expansion_for: int + boardgame: BoardGame + +class ExpansionInfoPublicNoGame(SQLModel): + expansion_for: int + class OwnedInfo(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) @@ -89,6 +96,17 @@ class OwnedInfo(SQLModel, table=True): back_populates="owned_info" ) +class OwnedInfoPublic(SQLModel): + price_paid: float + acquisition_date: date + acquired_from: str + boardgame: BoardGame + +class OwnedInfoPublicNoGame(SQLModel): + price_paid: float + acquisition_date: date + acquired_from: str + class WishlistInfo(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) wishlist_priority: int @@ -100,6 +118,13 @@ class WishlistInfo(SQLModel, table=True): back_populates="wishlist_info" ) +class WishlistInfoPublic(SQLModel): + wishlist_priority: int + boardgame: BoardGame + +class WishlistInfoPublicNoGame(SQLModel): + wishlist_priority: int + # class BoardGamePublic(BoardGameBase): # id: int diff --git a/src/modules/db_connection.py b/src/modules/db_connection.py index 48c8c5e..e1d42f9 100644 --- a/src/modules/db_connection.py +++ b/src/modules/db_connection.py @@ -11,7 +11,7 @@ sqlite_url = definitions.SQLITE_URL connect_args = {"check_same_thread": False} -engine = create_engine(sqlite_url, echo=False, connect_args=connect_args) +engine = create_engine(sqlite_url, echo=True, connect_args=connect_args) def get_engine(): return engine @@ -19,11 +19,11 @@ def get_engine(): def add_boardgame(session: Session, boardgame: boardgame_classes.BoardGame): with critical_function_lock: - # boardgame_designers = boardgame.designers - # for designer_index in range(len(boardgame_designers)): - # designer_in_db = get_designer(session, boardgame_designers[designer_index].id) - # if designer_in_db != None: - # boardgame.designers[designer_index] = designer_in_db + boardgame_designers = boardgame.designers + for designer_index in range(len(boardgame_designers)): + designer_in_db = get_designer(session, boardgame_designers[designer_index].id) + if designer_in_db != None: + boardgame.designers[designer_index] = designer_in_db is_boardgame_present = len(session.exec( select(boardgame.__class__).where(boardgame.__class__.id == boardgame.id)