from sqlalchemy import Column, Integer, DateTime, Unicode, PickleType, ForeignKey
from sqlalchemy.orm import relationship
from szurubooru.db.base import Base

class Snapshot(Base):
    __tablename__ = 'snapshot'

    OPERATION_CREATED = 'created'
    OPERATION_MODIFIED = 'modified'
    OPERATION_DELETED = 'deleted'

    snapshot_id = Column('id', Integer, primary_key=True)
    creation_time = Column('creation_time', DateTime, nullable=False)
    resource_type = Column('resource_type', Unicode(32), nullable=False, index=True)
    resource_id = Column('resource_id', Integer, nullable=False, index=True)
    resource_repr = Column('resource_repr', Unicode(64), nullable=False)
    operation = Column('operation', Unicode(16), nullable=False)
    user_id = Column('user_id', Integer, ForeignKey('user.id'))
    data = Column('data', PickleType)

    user = relationship('User')