"""Model representing a release grid.""" from sqlalchemy import BigInteger 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 ReleaseGrid(mysql.BaseModel): """Release Grid model.""" __tablename__ = 'release_grid' release_id = Column(Integer, primary_key=True, nullable=False) upc = Column(BigInteger, nullable=True) grid = Column(String, nullable=True) product_no = Column(String, nullable=False) create_time = Column(DateTime, nullable=False) gras_status = Column(Enum('unknown', 'incomplete', 'complete'), default='unknown') def to_dict(self): """Return dictionary of release grid data. Returns: dict: release grid metadata. """ return { 'release_id': self.release_id, 'upc': self.upc, 'grid': self.grid, 'product_no': self.product_no, 'create_time': self.create_time, 'gras_status': self.gras_status } def delete(product_id, session): """Delete release_grid entry for the product.""" session.query(ReleaseGrid) \ .filter(ReleaseGrid.release_id == product_id) \ .delete()