from src.config import VERSION

VERSION = "1.0.0"
def generar_respuesta_vida(cedula: str, resultado: dict) -> dict:
    openai = resultado.get("resultado_vida", {})
    mensaje = "Prueba de vida exitosa"
    tipo_error = "ok"

    # === Validaciones críticas según análisis de OpenAI ===
    if isinstance(openai, dict):
        if openai.get("es_persona") is False:
            return {
                "cedula": cedula,
                "validacion_exitosa": False,
                "vida_detectada": False,
                **resultado,
                "mensaje": "No se detectó una persona. Es un objeto, animal o imagen falsa.",
                "tipo_error": "no_persona",
                "version": VERSION
            }

        if openai.get("accesorios") is True:
            return {
                "cedula": cedula,
                "validacion_exitosa": False,
                "mensaje": "Se detectaron accesorios que obstruyen el rostro. Retírese sombrero o elementos similares.",
                "tipo_error": "accesorios_detectados",
                "version": VERSION
            }

        if openai.get("usa_lentes") is True:
            return {
                "cedula": cedula,
                "validacion_exitosa": False,
                "mensaje": "El usuario está usando lentes. Retírelos para una validación precisa.",
                "tipo_error": "usa_lentes",
                "version": VERSION
            }

        if openai.get("usa_auriculares") is True:
            return {
                "cedula": cedula,
                "validacion_exitosa": False,
                "mensaje": "El usuario tiene auriculares. Retírelos para una verificación más precisa.",
                "tipo_error": "usa_auriculares",
                "version": VERSION
            }

        if openai.get("usa_gorro") is True:
            return {
                "cedula": cedula,
                "validacion_exitosa": False,
                "mensaje": "El usuario tiene un accesorio en la cabeza. Retírelo para una verificación más precisa.",
                "tipo_error": "accesorio_adicional",
                "version": VERSION
            }

        if openai.get("ojos_detectados") is False:
            return {
                "cedula": cedula,
                "validacion_exitosa": False,
                "mensaje": "No se detectaron ojos claramente en la imagen. Intente nuevamente con mejor iluminación o sin obstrucciones.",
                "tipo_error": "ojos_no_detectados",
                "version": VERSION
            }

        if openai.get("vida_detectada") is not True:
            return {
                "cedula": cedula,
                "validacion_exitosa": False,
                "vida_detectada": False,
                **resultado,
                "mensaje": "No se detectó vida suficiente en el análisis de lhia.",
                "tipo_error": "vida_insuficiente",
                "version": VERSION
            }

    # === Si pasa todas las validaciones ===
    return {
        "cedula": cedula,
        "validacion_exitosa": True,
        **resultado,
        "mensaje": mensaje,
        "resultado": tipo_error,
        "version": VERSION
    }