From 3bb3b22ceaf864806d22c56fe58b517100f7c6f1 Mon Sep 17 00:00:00 2001 From: Thomas Peetz Date: Mon, 10 Feb 2025 12:54:59 +0100 Subject: [PATCH] add MediaActor and MediaActorFile to kontor-schema --- python/kontor-schema/kontor_schema/media.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/python/kontor-schema/kontor_schema/media.py b/python/kontor-schema/kontor_schema/media.py index 5998c0a..d1e2158 100644 --- a/python/kontor-schema/kontor_schema/media.py +++ b/python/kontor-schema/kontor_schema/media.py @@ -5,14 +5,16 @@ from pathlib import Path import requests from bs4 import BeautifulSoup -from sqlalchemy import Column, DateTime, Integer, String +from sqlalchemy import Column, DateTime, Integer, String, ForeignKey from sqlalchemy.dialects.mysql import BIT +from sqlalchemy.orm import relationship from .base import Base, BaseMixin, BaseVideoMixin class MediaFile(Base, BaseMixin, BaseVideoMixin): __tablename__ = 'media_file' + media_actor_files = relationship("MediaActorFile") def __repr__(self): return f'MediaFile({self.id} {self.title} {self.title})' @@ -66,6 +68,20 @@ class MediaFile(Base, BaseMixin, BaseVideoMixin): return self.file_name +class MediaActor(Base, BaseMixin): + __tablename__ = 'media_actor' + name = Column(String(255)) + media_actor_files = relationship("MediaActorFile") + + +class MediaActorFile(Base, BaseMixin): + __tablename__ = 'media_actor_file' + media_actor_id = Column(String, ForeignKey("media_actor.id"), nullable=False) + media_actor = relationship("MediaActor", back_populates="media_actor_files") + media_file_id = Column(String, ForeignKey("media_file.id"), nullable=False) + media_file = relationship("MediaFile", back_populates="media_actor_files") + + class MediaArticle(Base, BaseMixin): __tablename__ = 'media_article' review = Column(BIT(1))