from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String from sqlalchemy.dialects.mysql import BIT from sqlalchemy.orm import relationship from database.base import Base class Publisher(Base): __tablename__ = "publisher" id = Column(String, primary_key=True) created_date = Column(DateTime) last_modified_date = Column(DateTime) version = Column(Integer) name = Column(String(length=255)) comics = relationship("Comic") def __repr__(self): return f'Publisher({self.id} {self.name})' def __str__(self): return self.__repr__() class Comic(Base): __tablename__ = 'comic' id = Column(String, primary_key=True) created_date = Column(DateTime) last_modified_date = Column(DateTime) version = Column(Integer) title = Column(String(length=255)) publisher_id = Column(String, ForeignKey('publisher.id')) publisher = relationship("Publisher", back_populates="comics") current_order = Column(BIT(1)) completed = Column(BIT(1)) def __repr__(self): return f'Comic({self.id} {self.version} {self.title} {self.publisher.name})' def __str__(self): return f'{self.title}({self.id})'