import uuid from sqlalchemy import ( Column, Integer, Unicode, DateTime, SmallInteger, UniqueConstraint ) from sqlalchemy.dialects.postgresql import JSON from randy.models.meta import Base from randy.models.guidtype import GUID class Picture(Base): __tablename__ = 'pictures' __table_args__ = (UniqueConstraint('modified_time', 'uri', 'hash', 'size'), ) id = Column('id', GUID(), primary_key=True, default=uuid.uuid4) uri = Column('uri', Unicode(255), unique=True) weight = Column('weight', SmallInteger) file_hash = Column('hash', Unicode(255)) exif = Column('exif', JSON) cloud_vision = Column('cloud_vision', JSON) size = Column('size', Integer) modified_time = Column('modified_time', DateTime) def __init__(self, uri=None, weight=4096, file_hash=None, exif=None, cloud_vision=None, size=None, modified_date=None, picture_id=None): self.uri = uri self.weight = weight self.file_hash = file_hash self.exif = exif self.cloud_vision = cloud_vision self.size = size self.modified_date = modified_date self.id = picture_id