import datetime as dt from sqlalchemy import Column, Integer, DateTime, Boolean from sqlalchemy.orm import declared_attr from sqlalchemy.ext.hybrid import hybrid_property class CrudMixin: id = Column(Integer, primary_key=True) created_at = Column(DateTime, default=dt.datetime.utcnow, nullable=False) updated_at = Column(DateTime, default=dt.datetime.utcnow, onupdate=dt.datetime.utcnow, nullable=False) is_deleted = Column(Boolean, default=False, nullable=False) @hybrid_property def is_deleted(self): return self.is_deleted def mark_deleted(self): self.is_deleted = True