Skip to content

Instantly share code, notes, and snippets.

@ahvahsky2008
Created December 21, 2022 10:30
Show Gist options
  • Save ahvahsky2008/42fc985a64fc6c96ec623abc98486c4f to your computer and use it in GitHub Desktop.
Save ahvahsky2008/42fc985a64fc6c96ec623abc98486c4f to your computer and use it in GitHub Desktop.
from datetime import date, datetime
import uuid
from dataclasses import dataclass, field
@dataclass
class MixinId:
id: uuid.UUID
@dataclass
class MixinDate:
created: datetime
modified: datetime
@dataclass
class FilmWork(MixinId, MixinDate):
title: str
creation_date: date
description: str = field(default="")
rating: float = field(default=0.0)
type: str = field(default="")
certificate: str = field(default="")
file_path: str = field(default="")
@dataclass
class Person(MixinId, MixinDate):
full_name: str
@dataclass
class PersonFilmWork(MixinId):
role: str
created: datetime
film_work_id: uuid.UUID = field(default_factory=uuid.uuid4)
person_id: uuid.UUID = field(default_factory=uuid.uuid4)
@dataclass
class Genre(MixinId, MixinDate):
name: str
description: str
@dataclass
class GenreFilmWork(MixinId):
created: datetime
film_work_id: uuid.UUID = field(default_factory=uuid.uuid4)
genre_id: uuid.UUID = field(default_factory=uuid.uuid4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment