from datetime import datetime, timezone from sqlalchemy import ( DateTime, Integer ) from sqlalchemy.orm import Mapped, mapped_column, DeclarativeBase class Base(DeclarativeBase): """Базовая модель с id, датой создания и датой удаления.""" id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) date_created: Mapped[datetime] = mapped_column( DateTime, default=datetime.now(timezone.utc), nullable=False ) date_removed: Mapped[datetime | None] = mapped_column(DateTime, nullable=True) def to_dict(self): return {c.name: getattr(self, c.name) for c in self.__table__.columns}