randy/randy/models/picture.py

47 lines
1.3 KiB
Python

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