<?php

require_once __DIR__ . '/../models/CandidatoModel.php';

class CandidatoController {
    private static $candidatoModel = null;

    public static function inicializar() {
        if (self::$candidatoModel === null) {
            self::$candidatoModel = new CandidatoModel();
        }
    }

    public static function registrarCandidato() {

        $nombres = $_POST['nombres'];
        $primer_apellido = $_POST['primer_apellido'];
        $segundo_apellido = $_POST['segundo_apellido'];
        $correo = $_POST['correo'];
        $telefono = $_POST['telefono'];
        $id_examen = $_POST['id_examen'];
        $id_tipo_id = $_POST['id_tipo_id'];
        $id_rango_edad = $_POST['id_rango_edad'];
        $id_genero = $_POST['id_genero'];

        return self::$candidatoModel->registrarCandidato(
            $nombres,
            $primer_apellido,
            $segundo_apellido,
            $correo,
            $telefono,
            $id_examen,
            $id_tipo_id,
            $id_rango_edad,
            $id_genero
        );
    }

    public static function registrarInfoCandidato() {
        $id_candidato = $_POST['id_candidato'];

        $exiteInfo = self::existeRegistroInfoCandidato($id_candidato);
        if ($exiteInfo) {
            return [
                "estado" => "error",
                "mensaje" => "Ya existe un registro de información para este candidato."
            ];
        }

        if(!self::existeIdCandidato($id_candidato)){
            return [
                "estado" => "error",
                "mensaje" => "El ID del candidato no existe."
            ];
        }


        $id_pais = $_POST['id_pais'];
        $id_estado = $_POST['id_estado'];
        $id_municipio = $_POST['id_municipio'];
        $id_colonia = $_POST['id_colonia'];
        $id_nivel = $_POST['id_nivel'];
        $id_giro = $_POST['id_giro'];
        $nombre_empresa_institucion = $_POST['nombre_empresa_institucion'];
        $motivo_examen = $_POST['motivo_examen'];
        $motivo_op = isset($_POST['motivo_op']) ? $_POST['motivo_op'] : null;
        $calificacion_servicio = $_POST['calificacion_servicio'];
        $consentimiento_pub = $_POST['consentimiento_pub'];

        $fecha_salida = $_POST['fecha_salida'];

        return self::$candidatoModel->registrarInfoCandidatos(
            $id_candidato,
            $id_pais,
            $id_estado,
            $id_municipio,
            $id_colonia,
            $id_nivel,
            $id_giro,
            $nombre_empresa_institucion,
            $motivo_examen,
            $motivo_op,
            $calificacion_servicio,
            $consentimiento_pub,
            $fecha_salida
        );
    }

    public static function existeRegistroInfoCandidato($id_candidato) {
        return self::$candidatoModel->verificarRegistroInfoCandidato($id_candidato);
    }

    public static function existeIdCandidato($id_candidato){
        $resultado = self::$candidatoModel->existeIdCandidato($id_candidato);
        if($resultado['estado'] === 'exitoso'){
            return true;
        } else {
            return false;
        }
    }

}

// Instanciar el modelo al cargar el controlador
CandidatoController::inicializar();

?>