Files
Crm-Backend/models/mixins.py

32 lines
735 B
Python

from datetime import datetime, timezone
from sqlalchemy import DateTime, Numeric
from sqlalchemy.orm import Mapped, mapped_column
class IdMixin:
id: Mapped[int] = mapped_column(primary_key=True)
class SoftDeleteMixin:
is_deleted: Mapped[bool] = mapped_column(
default=False,
nullable=False,
)
class CreatedAtMixin:
created_at: Mapped[datetime] = mapped_column(
DateTime(timezone=True),
default=lambda: datetime.now(timezone.utc),
nullable=False,
)
class PriceMixin:
price: Mapped[float] = mapped_column(Numeric(12, 2), comment="Стоимость")
class CostMixin:
cost: Mapped[float] = mapped_column(Numeric(12, 2), comment="Себестоимость")