from typing import Any, Dict, Optional from pydantic import BaseModel, Field class MessagesDTO(BaseModel): """messages 表字段契约,对齐 Java Messages 实体。""" message_id: str = Field(..., description="消息 ID") conversation_id: str = Field(..., description="会话 ID") user: Optional[str] = Field(default=None, description="用户") query: str = Field(..., description="用户输入 / 提问内容") answer: Optional[str] = Field(default=None, description="回答消息内容") feedback: Optional[str] = Field(default=None, description="点赞 like / 点踩 dislike") feedback_content: Optional[str] = Field(default=None, description="点踩内容") created_at: int = Field(..., description="创建时间(毫秒时间戳)") updated_at: int = Field(..., description="更新时间(毫秒时间戳)") log: Dict[str, Any] = Field(default_factory=dict, description="当前对话日志(JSON)")