from typing import Literal

from pydantic import Field

from app.schemas.common import APIBaseModel, Channel


class EncuestaStartRequest(APIBaseModel):
    cliente: str
    nombre: str | None = None
    empresa: str | None = None
    canal: Channel = "freshchat"
    supports_interactive: bool = True


class EncuestaQuestionRequest(APIBaseModel):
    cliente: str
    step: Literal["rapidez", "amabilidad", "resolucion"]
    canal: Channel = "freshchat"
    supports_interactive: bool = True


class EncuestaSaveRequest(APIBaseModel):
    nombre: str | None = None
    empresa: str | None = None
    agente_id: str | None = None
    agente: str | None = None
    rapidez: int = Field(ge=1, le=5)
    amabilidad: int = Field(ge=1, le=5)
    resolucion: int = Field(ge=1, le=5)
    fecha_hora_conversacion_abierta: str | None = None
