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


class ChatRequest(BaseModel):
    session_id: str = Field(..., min_length=1, max_length=100)
    user: str = Field(..., min_length=1, max_length=150)
    message: str = Field(..., min_length=1, max_length=2000)
    employee_id: Optional[str] = None
    department: Optional[str] = None
    device_name: Optional[str] = None


class ChatResponse(BaseModel):
    chat_id: int
    reply: str
    steps: List[str]
    issue_code: Optional[str] = None
    issue_title: Optional[str] = None
    detected_category: Optional[str] = None
    quick_actions: List[str] = []