from datetime import datetime from uuid import UUID, uuid4 from sqlalchemy import Column, DateTime from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.dialects.postgresql import UUID as PG_UUID Base = declarative_base() class BaseModel(Base): __abstract__ = True id = Column(PG_UUID(as_uuid=True), primary_key=True, default=uuid4) created_at = Column(DateTime, default=datetime.utcnow) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) def __repr__(self): return f"<{self.__class__.__name__} {self.id}>"