41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
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})'
|