"""Release Approval Queue Model.""" import time from sqlalchemy import Column from sqlalchemy import Enum from sqlalchemy import Integer from sqlalchemy import String from ows_product_physical.connector import mysql from ows_product_physical.constant import field class ReleaseApprovalQueue(mysql.BaseModel): """Release Approval Queue model.""" __tablename__ = 'release_approval_queue' release_approval_id = Column( Integer, primary_key=True, autoincrement=True, nullable=False) release_id = Column(Integer, nullable=False) submitted_by = Column(Integer) last_updated = Column(String, default=time.strftime('%Y-%m-%d')) date_submitted = Column(String, default=time.strftime('%Y-%m-%d')) admin_approval = Column( Enum('Y', 'N'), default=field.DEFAULT_RELEASE_APPROVAL_QUEUE_ADMIN_APPROVAL) status = Column( Enum('approved', 'checked_out', 'checked_in', 'rejected'), default=field.DEFAULT_RELEASE_APPROVAL_QUEUE_STATUS) def to_dict(self): """Dict-ified representation of a single row.""" return { 'release_id': self.release_id, 'admin_approval': self.admin_approval, 'status': self.status, 'last_updated': self.last_updated, 'date_submitted': self.date_submitted, 'submitted_by': self.submitted_by, 'release_approval_id': self.release_approval_id } def create(product_id, vendor_id, session): """Create a release_approval_queue entry. Args: product_id (integer): product id to create release approval entry for vendor_id (integer): vendor to associate entry with session: database connection object """ session.add( ReleaseApprovalQueue(release_id=product_id, submitted_by=vendor_id)) session.flush()