from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field

class MessageRequest(BaseModel):
    sessionId: str = Field(..., min_length=1, description="Active visitor session ID")
    message: str = Field(..., min_length=1, description="Message text sent by the visitor")

class MessageResponse(BaseModel):
    sessionId: str
    reply: str

class MessageInDB(BaseModel):
    messageId: str
    conversationId: str
    sessionId: str
    role: str = Field(..., description="Sender role: 'user' or 'assistant'")
    content: str
    createdAt: datetime
    agentId: Optional[str] = Field(default=None, description="ID of the agent who sent this message (only for role='agent')")
