Files
kontor/flask/kontor/models.py
T
2025-01-08 22:34:21 +01:00

50 lines
1.6 KiB
Python

from kontor.extensions import db, ma
from sqlalchemy.sql import func
class Publisher(db.Model):
# __table__ = db.metadata.tables["publisher"]
__tablename__ = "publisher"
__table_args__ = {'extend_existing': True}
id = db.Column(db.String, primary_key=True)
created_date = db.Column(db.DateTime(timezone=True), server_default=func.now())
last_modified_date = db.Column(db.DateTime(timezone=True), server_default=func.now())
version = db.Column(db.Integer)
name = db.Column(db.String)
comics = db.relationship('Comic', back_populates='publisher', lazy='dynamic')
class PublisherSchema(ma.SQLAlchemySchema):
class Meta:
model = Publisher
comics = ma.List(ma.HyperlinkRelated("comics_api.index"))
publisher_schema = PublisherSchema()
publishers_schema = PublisherSchema(many=True)
class Comic(db.Model):
# __table__ = db.metadata.tables["comic"]
__tablename__ = "comic"
__table_args__ = {'extend_existing': True}
id = db.Column(db.String, primary_key=True)
created_date = db.Column(db.DateTime(timezone=True), server_default=func.now())
last_modified_date = db.Column(db.DateTime(timezone=True), server_default=func.now())
version = db.Column(db.Integer)
title = db.Column(db.String)
publisher_id = db.Column(db.String, db.ForeignKey("publisher.id"))
publisher = db.relationship("Publisher", back_populates="comics")
class ComicSchema(ma.SQLAlchemyAutoSchema):
class Meta:
model = Comic
include_fk = True
publisher = ma.HyperlinkRelated("comics_api.publisher_detail")
comic_schema = ComicSchema()
comics_schema = ComicSchema(many=True)