import uuid
from datetime import datetime
from sqlalchemy import Column, DateTime, String
from sqlalchemy.orm import declarative_mixin
from app.database import Base
@declarative_mixin
class TimestampMixin:
created_at = Column(DateTime, default=datetime.utcnow, nullable=False)
updated_at = Column(
DateTime,
default=datetime.utcnow,
onupdate=datetime.utcnow,
nullable=False,
)
class BaseModel(Base, TimestampMixin):
__abstract__ = True
uuid = Column(
String(36),
unique=True,
default=lambda: str(uuid.uuid4()),
nullable=False,
)