from sqlalchemy import Column, String, Text, Integer, ForeignKey, JSON from sqlalchemy.orm import relationship from app.models.base import BaseModel class Conversation(BaseModel): __tablename__ = "conversations" user_id = Column(String(36), ForeignKey("users.id"), nullable=False, index=True) title = Column(String(500), nullable=True) message_count = Column(Integer, default=0) messages = relationship("Message", back_populates="conversation", cascade="all, delete-orphan") class Message(BaseModel): __tablename__ = "messages" conversation_id = Column(String(36), ForeignKey("conversations.id"), nullable=False, index=True) role = Column(String(20), nullable=False) # user, assistant, system content = Column(Text, nullable=False) model = Column(String(100), nullable=True) tokens_used = Column(Integer, nullable=True) attachments = Column(JSON, nullable=True) # 新增: [{file_id, filename, file_type, file_size}] conversation = relationship("Conversation", back_populates="messages")