from models.movie import Movie from lib.database.database import get_db from lib.logger import logger @logger.catch def get_all_movies() -> list[Movie]: logger.info("Getting all movies") sql = "SELECT * FROM movies" with get_db() as conn: result = conn.execute(sql).df() result_dict = result.to_dict(orient="records") movies = [] for row in result_dict: row["id"] = str(row["id"]) logger.debug(f"Found movie: {row}") print("Type of name:", type(row["name"])) movie = Movie(**row) movies.append(movie) return movies return def get_next_movie() -> Movie | None: sql = "SELECT * FROM movies WHERE is_watched = FALSE AND showtime = CURRENT_DATE ORDER BY showtime ASC" with get_db() as conn: result = conn.execute(sql).fetchdf() if result.empty: return None response_data = result.to_dict(orient="records")[0] response_data["id"] = str(response_data["id"]) movie = Movie(**response_data) return movie return