You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.7 KiB
Python
72 lines
1.7 KiB
Python
import click
|
|
|
|
from sqlalchemy import Column, Integer, ForeignKey
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from .show import Base, Show
|
|
|
|
|
|
class ShiftedSeason(Base):
|
|
|
|
__tablename__ = 'shifted_seasons'
|
|
|
|
# v1.x
|
|
id = Column(Integer, primary_key=True)
|
|
|
|
|
|
# v2.0
|
|
# id: Mapped[int] = mapped_column(Integer, primary_key=True)
|
|
# pattern: Mapped[str] = mapped_column(String, nullable=False)
|
|
|
|
# v1.x
|
|
show_id = Column(Integer, ForeignKey('shows.id', ondelete="CASCADE"))
|
|
show = relationship(Show, back_populates='shifted_seasons', lazy='joined')
|
|
|
|
# v2.0
|
|
# show_id: Mapped[int] = mapped_column(ForeignKey("shows.id", ondelete="CASCADE"))
|
|
# show: Mapped["Show"] = relationship(back_populates="patterns")
|
|
|
|
|
|
original_season = Column(Integer)
|
|
|
|
first_episode = Column(Integer, default = -1)
|
|
last_episode = Column(Integer, default = -1)
|
|
|
|
season_offset = Column(Integer, default = 0)
|
|
episode_offset = Column(Integer, default = 0)
|
|
|
|
|
|
def getId(self):
|
|
return self.id
|
|
|
|
|
|
def getOriginalSeason(self):
|
|
return self.original_season
|
|
|
|
def getFirstEpisode(self):
|
|
return self.first_episode
|
|
|
|
def getLastEpisode(self):
|
|
return self.last_episode
|
|
|
|
|
|
def getSeasonOffset(self):
|
|
return self.season_offset
|
|
|
|
def getEpisodeOffset(self):
|
|
return self.episode_offset
|
|
|
|
|
|
def getObj(self):
|
|
|
|
shiftedSeasonObj = {}
|
|
|
|
shiftedSeasonObj['original_season'] = self.getOriginalSeason()
|
|
shiftedSeasonObj['first_episode'] = self.getFirstEpisode()
|
|
shiftedSeasonObj['last_episode'] = self.getLastEpisode()
|
|
shiftedSeasonObj['season_offset'] = self.getSeasonOffset()
|
|
shiftedSeasonObj['episode_offset'] = self.getEpisodeOffset()
|
|
|
|
return shiftedSeasonObj
|
|
|