"""Model representing a release subtitles.""" from sqlalchemy import Column from sqlalchemy import DateTime from sqlalchemy import Enum from sqlalchemy import Integer from sqlalchemy import String from product_digital.connectors import mysql class ReleaseSubtitles(mysql.BaseModel): """Release Subtitles model.""" __tablename__ = 'release_subtitles' release_subtitles_id = Column('id', Integer, primary_key=True, autoincrement=True, nullable=False) release_id = Column(Integer, nullable=False) import_asset_id = Column(Integer, nullable=False) forced_subtitles = Column(Enum('Y', 'N'), default='N') file_type = Column(Enum('itt', 'srt'), nullable=False) language_tag = Column(String, nullable=False) track_id = Column(Integer, nullable=False) status = Column(Enum('new', 'deleted'), nullable=False) last_updated = Column(DateTime, nullable=True) subtitle_type = Column(Enum('feature', 'trailer'), default='feature') def to_dict(self): """Return dictionary of release subtitles data. Returns: dict: release subtitles metadata. """ return { 'id': self.id, 'release_id': self.release_id, 'import_asset_id': self.import_asset_id, 'forced_subtitles': self.forced_subtitles, 'file_type': self.file_type, 'language_tag': self.language_tag, 'track_id': self.track_id, 'status': self.status, 'last_updated': self.last_updated, 'subtitle_type': self.subtitle_type } def delete(product_id, session): """Delete release_subtitle entry for the product.""" session.query(ReleaseSubtitles) \ .filter(ReleaseSubtitles.release_id == product_id) \ .delete()