""" 设计作品模型 """ from sqlalchemy import Column, BigInteger, Integer, String, Text, DateTime, ForeignKey from sqlalchemy.sql import func from sqlalchemy.orm import relationship from ..database import Base class Design(Base): """设计作品表""" __tablename__ = "designs" id = Column(BigInteger, primary_key=True, autoincrement=True, comment="设计ID") user_id = Column(BigInteger, ForeignKey("users.id"), nullable=False, comment="用户ID") category_id = Column(Integer, ForeignKey("categories.id"), nullable=False, comment="品类ID") sub_type_id = Column(Integer, ForeignKey("sub_types.id"), nullable=True, comment="子类型ID") color_id = Column(Integer, ForeignKey("colors.id"), nullable=True, comment="颜色ID") prompt = Column(Text, nullable=False, comment="设计需求") carving_technique = Column(String(50), nullable=True, comment="雕刻工艺") design_style = Column(String(50), nullable=True, comment="设计风格") motif = Column(String(100), nullable=True, comment="题材纹样") size_spec = Column(String(100), nullable=True, comment="尺寸规格") surface_finish = Column(String(50), nullable=True, comment="表面处理") usage_scene = Column(String(50), nullable=True, comment="用途场景") image_url = Column(String(255), nullable=True, comment="设计图URL") status = Column(String(20), default="generating", comment="状态") created_at = Column(DateTime, server_default=func.now(), comment="创建时间") updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间") # 关联关系 user = relationship("User", back_populates="designs") category = relationship("Category", back_populates="designs") sub_type = relationship("SubType", back_populates="designs") color = relationship("Color", back_populates="designs") images = relationship("DesignImage", back_populates="design", cascade="all, delete-orphan", order_by="DesignImage.sort_order") def __repr__(self): return f""