<?php
session_start();
header('Content-Type: application/json');
require_once(__DIR__ . '/../db/conexion.php');
require_once(__DIR__ . '/../utils/normalizar_texto.php');

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

// Validar y limpiar CURP
$curp = strtoupper(trim(limpiarTexto($data['CURP'] ?? '', 'texto')));
if (empty($curp)) {
    echo json_encode(['success' => false, 'message' => 'CURP no recibido']);
    exit;
}

// Campos editables normalizados
$estado_civil      = limpiarTexto($data['Estado_civil'] ?? $data['estado_civil'] ?? '');
$grupo_sanguineo   = limpiarTexto($data['Grupo_sanguineo'] ?? $data['grupo_sanguineo'] ?? '');
$enfermedades      = limpiarTexto($data['Enfermedades_cronicas'] ?? $data['enfermedades_cronicas'] ?? '');
$alergenos         = limpiarTexto($data['Alergenos'] ?? $data['alergenos'] ?? '');
$telefono          = limpiarTexto($data['Tel_personal'] ?? $data['tel_personal'] ?? '');
$direccion         = limpiarTexto($data['Direccion_personal'] ?? $data['direccion_personal'] ?? '');
$nombre_contacto   = limpiarTexto($data['Nombre_contacto_emergen'] ?? $data['nombre_contacto_emergen'] ?? '');
$tel_contacto      = limpiarTexto($data['Tel_contacto_emergen'] ?? $data['tel_contacto_emergen'] ?? '');
$num_hijos         = intval($data['Numero_Hijos'] ?? 0);
$talla             = limpiarTexto($data['Talla'] ?? '');

// Validación opcional
if (
    empty($estado_civil) && empty($grupo_sanguineo) && empty($enfermedades) &&
    empty($alergenos) && empty($telefono) && empty($direccion) &&
    empty($nombre_contacto) && empty($tel_contacto) && empty($talla)
) {
    echo json_encode(['success' => false, 'message' => 'No se proporcionaron datos personales para guardar.']);
    exit;
}

// Verificar si el CURP ya existe
$sqlCheck = "SELECT 1 FROM Plantilla_datos_personales WHERE CURP = ?";
$stmtCheck = $conn->prepare($sqlCheck);
$stmtCheck->bind_param("s", $curp);
$stmtCheck->execute();
$existe = $stmtCheck->get_result()->num_rows > 0;

// Preparar sentencia SQL
if ($existe) {
    $sql = "UPDATE Plantilla_datos_personales SET
        Estado_civil = ?, Grupo_sanguineo = ?, Enfermedades_cronicas = ?, Alergenos = ?,
        Tel_personal = ?, Direccion_personal = ?, Nombre_contacto_emergen = ?, Tel_contacto_emergen = ?,
        Numero_Hijos = ?, Talla = ?
        WHERE CURP = ?";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param(
        "ssssssssiss",
        $estado_civil, $grupo_sanguineo, $enfermedades, $alergenos,
        $telefono, $direccion, $nombre_contacto, $tel_contacto,
        $num_hijos, $talla, $curp
    );
} else {
    $sql = "INSERT INTO Plantilla_datos_personales (
        Estado_civil, Grupo_sanguineo, Enfermedades_cronicas, Alergenos,
        Tel_personal, Direccion_personal, Nombre_contacto_emergen, Tel_contacto_emergen,
        Numero_Hijos, Talla, CURP)
        VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param(
        "ssssssssiss",
        $estado_civil, $grupo_sanguineo, $enfermedades, $alergenos,
        $telefono, $direccion, $nombre_contacto, $tel_contacto,
        $num_hijos, $talla, $curp
    );
}

// Ejecutar y responder
if ($stmt->execute()) {
    echo json_encode([
        'success' => true,
        'message' => $existe ? 'Datos personales actualizados correctamente' : 'Datos personales insertados correctamente'
    ]);
} else {
    echo json_encode([
        'success' => false,
        'message' => 'Error al guardar: ' . $stmt->error
    ]);
}
