from citext import CIText from flask import g from sqlalchemy import BigInteger, Column, Sequence, SmallInteger from sqlalchemy.dialects.postgresql import UUID from ereuse_devicehub.db import db from ereuse_devicehub.resources.enums import Severity from ereuse_devicehub.resources.models import Thing from ereuse_devicehub.resources.user.models import User class SnapshotErrors(Thing): """A Snapshot errors.""" id = Column(BigInteger, Sequence('snapshot_errors_seq'), primary_key=True) description = Column(CIText(), default='', nullable=False) sid = Column(CIText(), nullable=True) severity = Column(SmallInteger, default=Severity.Info, nullable=False) snapshot_uuid = Column(UUID(as_uuid=True), nullable=False) owner_id = db.Column( UUID(as_uuid=True), db.ForeignKey(User.id), nullable=False, default=lambda: g.user.id, ) owner = db.relationship(User, primaryjoin=owner_id == User.id) def save(self, commit=False): db.session.add(self) if commit: db.session.commit()