47 lines
1.3 KiB
Python
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
|