Skip to content

Instantly share code, notes, and snippets.

@alecordev
Last active June 9, 2024 14:05
Show Gist options
  • Save alecordev/58e77414280f18ca1d5d01f0d032a4bc to your computer and use it in GitHub Desktop.
Save alecordev/58e77414280f18ca1d5d01f0d032a4bc to your computer and use it in GitHub Desktop.
Python model
import uuid
from sqlmodel import Field, Session, SQLModel, create_engine, select
# class Hero(SQLModel, table=True):
# id: uuid.UUID = Field(default=uuid.uuid4(), primary_key=True)
# # id: int | None = Field(default=None, primary_key=True)
# name: str = Field(index=True)
# secret_name: str
# age: int | None = Field(default=None, index=True)
class Movie(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
title: str
synopsis: str
director: Person
year: int
actors: list[Actor] = Field(default=[])
class Person(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str
age: int
class Country(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str
class Service(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str # netflix, hulu, etc
money: Decimal = Field(default=0, max_digits=5, decimal_places=3)
class Actor(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str
age: int
class UserReview(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
movie_id: int
rating: int
comment: str
class AnalystReview(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
movie_id: int
rating: int = Field(default=0)
comment: str
class ExternalReviewsResources(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str
url: str
class ExternalReview(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
name: str # rotten tomatoes, imdb, etc
movie_id: int
rating: int = Field(default=0)
comment: str
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment