import uuid from datetime import UTC, datetime from sqlalchemy import DateTime, Uuid from sqlalchemy.orm import Mapped, mapped_column def utcnow() -> datetime: return datetime.now(UTC) class IdMixin: id: Mapped[uuid.UUID] = mapped_column(Uuid, primary_key=True, default=uuid.uuid4) class TimestampMixin: created_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=utcnow) updated_at: Mapped[datetime] = mapped_column(DateTime(timezone=True), default=utcnow, onupdate=utcnow)