From 88e1d1c54b33e9e14fc3544c75ee49263c78f902 Mon Sep 17 00:00:00 2001 From: Esa Kataja Date: Sat, 9 Nov 2024 18:14:20 +0200 Subject: [PATCH] Change Movie database structure and seed value --- src/lib/database/database.sql | 18 +++++++++++++++--- src/models/movie.py | 10 ++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/lib/database/database.sql b/src/lib/database/database.sql index efa1902..6ef80de 100644 --- a/src/lib/database/database.sql +++ b/src/lib/database/database.sql @@ -15,9 +15,11 @@ CREATE TABLE movies ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, name TEXT NOT NULL, imdb_id TEXT UNIQUE, - actors TEXT, - release_year INTEGER, + actors TEXT[], + release_date DATE DEFAULT NULL, plot TEXT, + showtime DATE DEFAULT NULL, + is_watched BOOLEAN DEFAULT FALSE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, modified_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); @@ -47,4 +49,14 @@ CREATE TABLE log ( message TEXT NOT NULL, message_type TEXT NOT NULL, timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP -); \ No newline at end of file +); + +-- Add placeholder data +INSERT INTO movies (name, imdb_id, actors, release_date, plot, showtime) +VALUES ('A Maple Valley Christmas', +'tt21841642', +['Peyton List', 'Andrew W. Walker', 'Frances Flanagan'], +'2022-11-05', +'Erica is a rancher who has spent her whole life working the family farm with her mother and sister. +When Aaron arrives and disrupts her plans, she starts to question what it is she actually wants.', +'2024-12-01'); \ No newline at end of file diff --git a/src/models/movie.py b/src/models/movie.py index bd47a04..88d3976 100644 --- a/src/models/movie.py +++ b/src/models/movie.py @@ -1,14 +1,16 @@ -from sqlmodel import Field, SQLModel +from pydantic import BaseModel, Field from datetime import datetime from typing import Optional -class Movie(SQLModel, table=True): - id: Optional[int] = Field(default=None, primary_key=True) +class Movie(BaseModel): + id: Optional[str] name: str imdb_id: str - actors: str + actors: list[str] plot: str release_date: datetime + showtime: datetime + is_watched: bool = Field(default=False) created_at: datetime = Field(default_factory=datetime.utcnow) updated_at: datetime = Field(default_factory=datetime.utcnow)