from datetime import datetime from pydantic import BaseModel, Field class ConversationCreate(BaseModel): tenant_id: str employee_id: str user_id: str = Field(..., max_length=200) title: str | None = Field(None, max_length=500) class ConversationUpdate(BaseModel): title: str | None = Field(None, max_length=500) class MessageCreate(BaseModel): content: str class MessageResponse(BaseModel): id: str conversation_id: str role: str content: str token_count: int | None sources: str | None created_at: datetime @classmethod def from_model(cls, message) -> "MessageResponse": return cls( id=message.id, conversation_id=message.conversation_id, role=message.role.value, content=message.content, token_count=message.token_count, sources=message.sources, created_at=message.created_at, ) class ConversationResponse(BaseModel): id: str tenant_id: str employee_id: str user_id: str title: str | None created_at: datetime updated_at: datetime @classmethod def from_model(cls, conv) -> "ConversationResponse": return cls( id=conv.id, tenant_id=conv.tenant_id, employee_id=conv.employee_id, user_id=conv.user_id, title=conv.title, created_at=conv.created_at, updated_at=conv.updated_at, )