<?php
// api_poligrafia/estudio_seguridad/create.php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Methods: POST, OPTIONS");
header("Content-Type: application/json; charset=utf-8");

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit;
}

require_once(__DIR__ . '/../config.php'); // Aquí se define $mysqli

// Leer JSON del body
$inputRaw = file_get_contents('php://input');
$input = json_decode($inputRaw, true);

if (!$input) {
    http_response_code(400);
    echo json_encode([
        "success" => false,
        "message" => "No se recibió información válida (JSON inválido o vacío)."
    ]);
    exit;
}

// Helper para obtener valores (null si no existen)
function get_value($array, $key) {
    return (isset($array[$key]) && $array[$key] !== '') ? $array[$key] : null;
}

// === Campos obligatorios mínimos ===
$idCandidato   = get_value($input, 'ID_CANDIDATO_EMPRESA');
$tipoDoc       = get_value($input, 'TIPO_DOCUMENTO_CANDIDATO');
$numDoc        = get_value($input, 'NUMERO_DOCUMENTO_CANDIDATO');

// USUARIO_CREA: si no viene, usamos un usuario por defecto (por ahora 1)
$usuarioCrea   = get_value($input, 'USUARIO_CREA');
if (!$usuarioCrea) {
    $usuarioCrea = 1; // <-- Cambia según tu entorno
}

$estadoEstudio = get_value($input, 'ESTADO_ESTUDIO') ?? 1;

if (!$idCandidato || !$tipoDoc || !$numDoc) {
    http_response_code(400);
    echo json_encode([
        "success" => false,
        "message" => "Faltan datos obligatorios: ID_CANDIDATO_EMPRESA, TIPO_DOCUMENTO_CANDIDATO o NUMERO_DOCUMENTO_CANDIDATO."
    ]);
    exit;
}

// === Demás campos del formulario ===
$cargoAspira              = get_value($input, 'CARGO_ASPIRA');

$procuraduria             = get_value($input, 'PROCURADURIA');
$policiaNacional          = get_value($input, 'POLICIA_NACIONAL');
$fiscalia                 = get_value($input, 'FISCALIA');
$contraloria              = get_value($input, 'CONTRALORIA');
$dijin                    = get_value($input, 'DIJIN');

$obsProcDelito            = get_value($input, 'OBS_PROC_DELITO');
$obsProcFechaProvidencia  = get_value($input, 'OBS_PROC_FECHA_PROVIDENCIA');
$obsProcSancionPrincipal  = get_value($input, 'OBS_PROC_SANCION_PRINCIPAL');
$obsProcDescripcion       = get_value($input, 'OBS_PROC_DESCRIPCION');
$obsProcAdjuntos          = get_value($input, 'OBS_PROC_ADJUNTOS');

$obsRuntFecha             = get_value($input, 'OBS_RUNT_FECHA');
$obsRuntTipoVehiculo      = get_value($input, 'OBS_RUNT_TIPO_VEHICULO');
$obsRuntValorPendiente    = get_value($input, 'OBS_RUNT_VALOR_PENDIENTE');
$obsRuntCodigo            = get_value($input, 'OBS_RUNT_CODIGO');
$obsRuntDescripcion       = get_value($input, 'OBS_RUNT_DESCRIPCION');

$obsRamaClaseProceso      = get_value($input, 'OBS_RAMA_JUDICIAL_CLASE_PROCESO');
$obsRamaFechaRadicacion   = get_value($input, 'OBS_RAMA_JUDICIAL_FECHA_RADICACION');
$obsRamaTipoProceso       = get_value($input, 'OBS_RAMA_JUDICIAL_TIPO_PROCESO');
$obsRamaDespacho          = get_value($input, 'OBS_RAMA_JUDICIAL_DESPACHO');
$obsRamaNumeroProceso     = get_value($input, 'OBS_RAMA_JUDICIAL_NUMERO_PROCESO');
$obsRamaObsPolicia        = get_value($input, 'OBS_RAMA_JUDICIAL_OBS_POLICIA');
$obsRamaAdjuntos          = get_value($input, 'OBS_RAMA_JUDICIAL_ADJUNTOS');
$obsRamaDescripcion       = get_value($input, 'OBS_RAMA_JUDICIAL_DESCRIPCION');

$refEduInstitucion        = get_value($input, 'REF_EDU_INSTITUCION');
$refEduCiudad             = get_value($input, 'REF_EDU_CIUDAD');
$refEduTelefono           = get_value($input, 'REF_EDU_TELEFONO');
$refEduCorreo             = get_value($input, 'REF_EDU_CORREO');
$refEduObservaciones      = get_value($input, 'REF_EDU_OBSERVACIONES');

$refEmpresa               = get_value($input, 'REF_EMPRESA');
$refEmpresaCargo          = get_value($input, 'REF_EMPRESA_CARGO');
$refEmpresaMotivoRetiro   = get_value($input, 'REF_EMPRESA_MOTIVO_RETIRO');
$refEmpresaTelefono       = get_value($input, 'REF_EMPRESA_TELEFONO');
$refEmpresaObservaciones  = get_value($input, 'REF_EMPRESA_OBSERVACIONES');

// IMPORTANTE: FECHA_CREACION se deja a cargo de MySQL (DEFAULT CURRENT_TIMESTAMP)

// === INSERT: 39 columnas / 39 placeholders (SIN coma al final) ===
$sql = "INSERT INTO ESTUDIO_SEGURIDAD (
    ID_CANDIDATO_EMPRESA,
    USUARIO_CREA,
    ESTADO_ESTUDIO,
    CARGO_ASPIRA,
    TIPO_DOCUMENTO_CANDIDATO,
    NUMERO_DOCUMENTO_CANDIDATO,
    PROCURADURIA,
    POLICIA_NACIONAL,
    FISCALIA,
    CONTRALORIA,
    DIJIN,
    OBS_PROC_DELITO,
    OBS_PROC_FECHA_PROVIDENCIA,
    OBS_PROC_SANCION_PRINCIPAL,
    OBS_PROC_DESCRIPCION,
    OBS_PROC_ADJUNTOS,
    OBS_RUNT_FECHA,
    OBS_RUNT_TIPO_VEHICULO,
    OBS_RUNT_VALOR_PENDIENTE,
    OBS_RUNT_CODIGO,
    OBS_RUNT_DESCRIPCION,
    OBS_RAMA_JUDICIAL_CLASE_PROCESO,
    OBS_RAMA_JUDICIAL_FECHA_RADICACION,
    OBS_RAMA_JUDICIAL_TIPO_PROCESO,
    OBS_RAMA_JUDICIAL_DESPACHO,
    OBS_RAMA_JUDICIAL_NUMERO_PROCESO,
    OBS_RAMA_JUDICIAL_OBS_POLICIA,
    OBS_RAMA_JUDICIAL_ADJUNTOS,
    OBS_RAMA_JUDICIAL_DESCRIPCION,
    REF_EDU_INSTITUCION,
    REF_EDU_CIUDAD,
    REF_EDU_TELEFONO,
    REF_EDU_CORREO,
    REF_EDU_OBSERVACIONES,
    REF_EMPRESA,
    REF_EMPRESA_CARGO,
    REF_EMPRESA_MOTIVO_RETIRO,
    REF_EMPRESA_TELEFONO,
    REF_EMPRESA_OBSERVACIONES
) VALUES (
    ?, ?, ?, ?, ?, ?,   -- 1-6
    ?, ?, ?, ?, ?, ?,   -- 7-12
    ?, ?, ?, ?, ?, ?,   -- 13-19
    ?, ?, ?, ?, ?, ?,   -- 20-26
    ?, ?, ?, ?, ?, ?,   -- 27-33
    ?, ?, ?, ?, ?, ?,   -- 34-39
    ?, ?, ?
)";

$stmt = $mysqli->prepare($sql);

if ($stmt === false) {
    http_response_code(500);
    echo json_encode([
        "success" => false,
        "message" => "Error al preparar la consulta: " . $mysqli->error
    ]);
    exit;
}

// 39 columnas → 39 's'
$types = str_repeat('s', 39);

$stmt->bind_param(
    $types,
    $idCandidato,              // 1
    $usuarioCrea,              // 2
    $estadoEstudio,            // 3
    $cargoAspira,              // 4
    $tipoDoc,                  // 5
    $numDoc,                   // 6
    $procuraduria,             // 7
    $policiaNacional,          // 8
    $fiscalia,                 // 9
    $contraloria,              // 10
    $dijin,                    // 11
    $obsProcDelito,            // 12
    $obsProcFechaProvidencia,  // 13
    $obsProcSancionPrincipal,  // 14
    $obsProcDescripcion,       // 15
    $obsProcAdjuntos,          // 16
    $obsRuntFecha,             // 17
    $obsRuntTipoVehiculo,      // 18
    $obsRuntValorPendiente,    // 19
    $obsRuntCodigo,            // 20
    $obsRuntDescripcion,       // 21
    $obsRamaClaseProceso,      // 22
    $obsRamaFechaRadicacion,   // 23
    $obsRamaTipoProceso,       // 24
    $obsRamaDespacho,          // 25
    $obsRamaNumeroProceso,     // 26
    $obsRamaObsPolicia,        // 27
    $obsRamaAdjuntos,          // 28
    $obsRamaDescripcion,       // 29
    $refEduInstitucion,        // 30
    $refEduCiudad,             // 31
    $refEduTelefono,           // 32
    $refEduCorreo,             // 33
    $refEduObservaciones,      // 34
    $refEmpresa,               // 35
    $refEmpresaCargo,          // 36
    $refEmpresaMotivoRetiro,   // 37
    $refEmpresaTelefono,       // 38
    $refEmpresaObservaciones   // 39
);

if (!$stmt->execute()) {
    http_response_code(500);
    echo json_encode([
        "success" => false,
        "message" => "Error al insertar el registro: " . $stmt->error
    ]);
    $stmt->close();
    exit;
}

$idInsertado = $stmt->insert_id;
$stmt->close();

echo json_encode([
    "success" => true,
    "message" => "Estudio de seguridad creado exitosamente.",
    "id_estudio" => $idInsertado
]);
