"""Model representing a Rejection Notes.""" 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 RejectionNotes(mysql.BaseModel): """Rejection Notes model.""" __tablename__ = 'rejection_notes' rejection_id = Column(Integer, primary_key=True, autoincrement=True, nullable=False) release_approval_id = Column(Integer, nullable=False) table_name = Column(String, nullable=False) field_name = Column(String, nullable=True) comments = Column(String, nullable=False) corrected = Column(Enum('Y', 'N'), nullable=False) date_added = Column(DateTime, nullable=False) key_id = Column(Integer, nullable=True) changed_by = Column(Integer, nullable=True) changed_by_type = Column(Enum('oa', 'alw', 'system'), nullable=True) def to_dict(self): """Return dictionary of rejection notes data. Returns: dict: rejection notes metadata. """ return { 'rejection_id': self.rejection_id, 'release_approval_id': self.release_approval_id, 'table_name': self.table_name, 'field_name': self.field_name, 'comments': self.comments, 'corrected': self.corrected, 'date_added': self.date_added, 'key_id': self.key_id, 'changed_by': self.changed_by, 'changed_by_type': self.changed_by_type } def delete(release_approval_ids, session): """Delete rejection_notes entry for the product.""" session.query(RejectionNotes) \ .filter(RejectionNotes.release_approval_id.in_(release_approval_ids)) \ .delete(synchronize_session=False)