49c0e5559c
Co-Authored-By: Claude Code <noreply@anthropic.com>
58 lines
1.2 KiB
Python
58 lines
1.2 KiB
Python
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
|