""" 成本域 ORM 模型 映射: erp_order_item_costs """ from __future__ import annotations import uuid from datetime import datetime from sqlalchemy import DateTime, ForeignKey, Numeric, func from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import Mapped, mapped_column, relationship from app.models.base import Base class ErpOrderItemCost(Base): """订单明细成本快照表 —— 发货/确认瞬间锚定 MWA 成本""" __tablename__ = "erp_order_item_costs" id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), primary_key=True, default=uuid.uuid4 ) order_item_id: Mapped[uuid.UUID] = mapped_column( UUID(as_uuid=True), ForeignKey("erp_order_items.id"), nullable=False, unique=True, comment="关联订单明细" ) purchase_unit_price: Mapped[float] = mapped_column( Numeric(12, 4), nullable=False, comment="MWA 成本快照" ) profit_amount: Mapped[float] = mapped_column( Numeric(14, 2), default=0, comment="利润额 = (售价-成本)*数量" ) profit_rate: Mapped[float] = mapped_column( Numeric(5, 4), default=0, comment="利润率" ) created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now()) # 关系 order_item: Mapped["ErpOrderItem"] = relationship("ErpOrderItem", lazy="selectin") # noqa: F821