from datetime import datetime from pydantic import BaseModel from app.models.database import ConversationStatus, ConversationSource, MessageRole, IntentLevel class MessageCreate(BaseModel): role: MessageRole content: str class MessageOut(BaseModel): id: str role: MessageRole content: str created_at: datetime model_config = {"from_attributes": True} class ConversationCreate(BaseModel): source: ConversationSource = ConversationSource.standalone client_info: dict | None = None class ConversationOut(BaseModel): id: str session_id: str status: ConversationStatus source: ConversationSource client_info: dict | None created_at: datetime messages: list[MessageOut] = [] model_config = {"from_attributes": True} class CustomerProfileOut(BaseModel): raw_info: dict | None summary: str | None model_config = {"from_attributes": True} class EvaluationOut(BaseModel): intent_level: IntentLevel reasoning: str | None contact_info: dict | None email_sent: bool model_config = {"from_attributes": True} class ChatMessage(BaseModel): session_id: str content: str