from sqlalchemy import Column, String, Text, Float, Date, Boolean, Integer, DateTime from sqlalchemy.sql import func from app.core.database import Base import uuid def generate_uuid(): return str(uuid.uuid4()) class DealInfo(Base): __tablename__ = "deal_info" id = Column(String(36), primary_key=True, default=generate_uuid) user_id = Column(String(36), nullable=True, index=True) # 标题和内容 title = Column(String(255), nullable=False) content = Column(Text, nullable=True) # 成交信息 deal_price = Column(Float, nullable=True) # 成交价格 deal_date = Column(Date, nullable=True) # 成交日期 deal_no = Column(String(20), nullable=True, index=True) # 行情编号(从A000001开始递增) # 包装和分类 packaging = Column(String(50), nullable=True) # 包装(标百/标十/单张) category = Column(String(100), nullable=True) # 分类 # 评级相关 is_graded = Column(Boolean, default=False) # 是否评级 grading_company = Column(String(100), nullable=True) # 评级机构 grading_score = Column(String(50), nullable=True) # 评级分数 # 号码特征 tail_number = Column(String(10), nullable=True) # 尾号 size_type = Column(String(20), nullable=True) # 大小号 # 版别 version = Column(String(50), nullable=True) # 版别 # 交易信息 platform = Column(String(50), nullable=True) # 成交平台 seller = Column(String(100), nullable=True) # 出售者 buyer = Column(String(100), nullable=True) # 购买者 # 状态 status = Column(String(20), default="active") # 统计 view_count = Column(Integer, default=0) contact_count = Column(Integer, default=0) # 时间 created_at = Column(DateTime(timezone=True), server_default=func.now()) updated_at = Column(DateTime(timezone=True), onupdate=func.now())