from sqlmodel import create_engine, SQLModel, Session, select from src.config import definitions import os from typing import Union from src.classes import boardgame_classes sqlite_url = definitions.SQLITE_URL connect_args = {"check_same_thread": False} engine = create_engine(sqlite_url, echo=True, connect_args=connect_args) def add_boardgame(boardgame: Union[ boardgame_classes.BoardGame, boardgame_classes.BoardGameExpansion, boardgame_classes.OwnedBoardGame, boardgame_classes.OwnedBoardGameExpansion, boardgame_classes.WishlistBoardGame, boardgame_classes.WishlistBoardGameExpansion]): session = Session(engine) session.add(boardgame) session.commit() def get_all_owned_boardgames(): with Session(engine) as session: statement = select(boardgame_classes.OwnedBoardGame) results = session.exec(statement) boardgame_list = [] for boardgame in results: boardgame_list.append(boardgame) return boardgame_list def delete_database(): os.remove(definitions.DATABASE_FILE_PATH) def create_db_and_tables(): SQLModel.metadata.create_all(engine)