import logging

from fastapi import APIRouter, Depends

from app.core.config import Settings, get_settings
from app.core.security import verify_bearer_token
from app.schemas.encuesta import EncuestaQuestionRequest, EncuestaSaveRequest, EncuestaStartRequest
from app.services.encuesta_service import get_survey_question, save_survey, start_survey

logger = logging.getLogger(__name__)

router = APIRouter(
    prefix="/freshchat/encuesta",
    tags=["encuesta"],
    dependencies=[Depends(verify_bearer_token)],
)


@router.post("/start")
def encuesta_start(
    request: EncuestaStartRequest,
    settings: Settings = Depends(get_settings),
) -> dict:
    logger.info("Starting survey for cliente=%s canal=%s", request.cliente, request.canal)
    return start_survey(request, settings.default_response_mode)


@router.post("/question")
def encuesta_question(
    request: EncuestaQuestionRequest,
    settings: Settings = Depends(get_settings),
) -> dict:
    logger.info("Serving survey question step=%s cliente=%s", request.step, request.cliente)
    return get_survey_question(request, settings.default_response_mode)


@router.post("/save")
def encuesta_save(request: EncuestaSaveRequest) -> dict:
    logger.info("Saving survey response agente_id=%s", request.agente_id)
    return save_survey(request)

