<?php
// api_poligrafia/estudio_seguridad/start.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;
}

if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
  http_response_code(405);
  echo json_encode(["success" => false, "message" => "Método no permitido. Usa POST."]);
  exit;
}

require_once(__DIR__ . '/../config.php');

$raw = file_get_contents("php://input");
$data = json_decode($raw, true);

if (!$data) {
  http_response_code(400);
  echo json_encode(["success" => false, "message" => "JSON inválido o vacío.", "raw" => $raw]);
  exit;
}

function pick($arr, $k, $default = null) {
  return (isset($arr[$k]) && $arr[$k] !== '' && $arr[$k] !== null) ? $arr[$k] : $default;
}

$ID_CANDIDATO_EMPRESA   = (int) pick($data, 'ID_CANDIDATO_EMPRESA', 0);
$TIPO_DOCUMENTO_CANDIDATO = (int) pick($data, 'TIPO_DOCUMENTO_CANDIDATO', 0);
$NUMERO_DOCUMENTO_CANDIDATO = (string) pick($data, 'NUMERO_DOCUMENTO_CANDIDATO', '');
$USUARIO_CREA           = (int) pick($data, 'USUARIO_CREA', 1);
$ESTADO_ESTUDIO         = (int) pick($data, 'ESTADO_ESTUDIO', 1);
$CARGO_ASPIRA           = pick($data, 'CARGO_ASPIRA', null);

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

// ✅ (Opcional) Reusar estudio activo existente del candidato (evita duplicados)
$sqlFind = "SELECT ID_ESTUDIO
            FROM ESTUDIO_SEGURIDAD
            WHERE ID_CANDIDATO_EMPRESA = ?
              AND ESTADO_ESTUDIO = 1
            ORDER BY ID_ESTUDIO DESC
            LIMIT 1";

$stmtFind = $mysqli->prepare($sqlFind);
$stmtFind->bind_param("i", $ID_CANDIDATO_EMPRESA);
$stmtFind->execute();
$resFind = $stmtFind->get_result();

if ($row = $resFind->fetch_assoc()) {
  echo json_encode([
    "success" => true,
    "message" => "Estudio activo existente reutilizado.",
    "id_estudio" => (int)$row["ID_ESTUDIO"],
    "reused" => true
  ]);
  $stmtFind->close();
  $mysqli->close();
  exit;
}
$stmtFind->close();

// ✅ Crear cabecera
$sql = "INSERT INTO ESTUDIO_SEGURIDAD (
          ID_CANDIDATO_EMPRESA,
          USUARIO_CREA,
          ESTADO_ESTUDIO,
          CARGO_ASPIRA,
          TIPO_DOCUMENTO_CANDIDATO,
          NUMERO_DOCUMENTO_CANDIDATO
        ) VALUES (?, ?, ?, ?, ?, ?)";

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

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

$stmt->bind_param(
  "iiisis",
  $ID_CANDIDATO_EMPRESA,
  $USUARIO_CREA,
  $ESTADO_ESTUDIO,
  $CARGO_ASPIRA,
  $TIPO_DOCUMENTO_CANDIDATO,
  $NUMERO_DOCUMENTO_CANDIDATO
);

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

echo json_encode([
  "success" => true,
  "message" => "Estudio iniciado.",
  "id_estudio" => $stmt->insert_id,
  "reused" => false
]);

$stmt->close();
$mysqli->close();
