buff_selection_request_item.py 1.5 KB

123456789101112131415161718192021222324
  1. """
  2. BUFF 选品请求单-选中饰品明细表模型:每条记录为某次选品请求选中的一件饰品,按 user_id 与 request_id 隔离。
  3. """
  4. from sqlalchemy import Column, BigInteger, Integer, String, DateTime, UniqueConstraint, Numeric
  5. from app.database import Base
  6. from app.utils.timezone import beijing_now_naive
  7. class BuffSelectionRequestItem(Base):
  8. """BUFF 选品请求单-选中饰品明细表"""
  9. __tablename__ = "buff_selection_request_item"
  10. __table_args__ = (UniqueConstraint("request_id", "goods_id", name="uk_request_goods"),)
  11. id = Column(BigInteger, primary_key=True, autoincrement=True, comment="主键ID")
  12. request_id = Column(BigInteger, nullable=False, index=True, comment="选品请求单ID")
  13. user_id = Column(Integer, nullable=False, index=True, comment="用户ID,与请求单一致,便于按用户隔离")
  14. goods_id = Column(String(64), nullable=False, index=True, comment="BUFF饰品ID")
  15. goods_name = Column(String(256), nullable=True, comment="饰品名称")
  16. icon_url = Column(String(512), nullable=True, comment="饰品图片URL")
  17. steam_link = Column(String(512), nullable=True, comment="饰品Steam链接")
  18. price_cny = Column(Numeric(12, 2), nullable=True, comment="价格(人民币)")
  19. price_usd = Column(Numeric(12, 2), nullable=True, comment="价格(美元)")
  20. wear_range = Column(String(64), nullable=True, comment="磨损区间,如 0.00-0.02")
  21. created_at = Column(DateTime, default=beijing_now_naive, comment="创建时间")