import logging
import httpx
from app.config import settings

logger = logging.getLogger(__name__)

TURNSTILE_VERIFY_URL = "https://challenges.cloudflare.com/turnstile/v0/siteverify"


def verify_turnstile(token: str, remote_ip: str | None) -> bool:
    if not settings.TURNSTILE_SECRET_KEY:
        return True  # no configurado (ej. dev local): no bloquear el formulario

    try:
        resp = httpx.post(
            TURNSTILE_VERIFY_URL,
            data={"secret": settings.TURNSTILE_SECRET_KEY, "response": token, "remoteip": remote_ip or ""},
            timeout=10,
        )
        return bool(resp.json().get("success"))
    except Exception as e:
        logger.error(f"Fallo al verificar Turnstile: {e}", exc_info=True)
        return False
