<?php
// src/borrar_entrevista.php
session_start();
header('Content-Type: application/json');
require_once __DIR__ . '/../config/db_auto.php';
require_once __DIR__ . '/system_logger.php';

$logger = SystemLogger::getInstance();

$data = json_decode(file_get_contents('php://input'), true);
if (!isset($data['id'])) {
    $logger->warning('Intento de eliminar entrevista sin ID', "Usuario ID: " . ($_SESSION['user_id'] ?? 'N/A'));
    echo json_encode(['success' => false, 'msg' => 'ID no proporcionado']);
    exit;
}

// Verificar autenticación
if (!isset($_SESSION['user_id'])) {
    $logger->warning('Intento de eliminar entrevista sin autenticación', 'IP: ' . ($_SERVER['REMOTE_ADDR'] ?? 'N/A'));
    echo json_encode(['success' => false, 'msg' => 'No autorizado']);
    exit;
}

$id = $data['id'];

try {
    // Obtener datos de la entrevista antes de eliminarla para el log
    $stmt_info = $pdo->prepare("
        SELECT 
            e.motivo,
            e.fecha,
            CONCAT(a.nombre, ' ', a.ap_paterno, ' ', a.ap_materno) as alumno_nombre,
            a.run as alumno_run,
            CONCAT(f.nombre, ' ', f.ap_paterno, ' ', f.ap_materno) as familiar_nombre,
            f.run as familiar_run
        FROM entrevistas_apoderados e
        JOIN alumnos a ON e.alumno_id = a.id
        JOIN familiares f ON e.familiar_id = f.id
        WHERE e.id = ?
    ");
    $stmt_info->execute([$id]);
    $entrevista_info = $stmt_info->fetch(PDO::FETCH_ASSOC);

    // Elimina la entrevista
    $sql = "DELETE FROM entrevistas_apoderados WHERE id = :id";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':id' => $id]);

    if ($stmt->rowCount() > 0) {
        if ($entrevista_info) {
            $detalles = "Entrevista ID: $id, Alumno: {$entrevista_info['alumno_nombre']} (RUN: {$entrevista_info['alumno_run']}), Familiar: {$entrevista_info['familiar_nombre']} (RUN: {$entrevista_info['familiar_run']}), Motivo: {$entrevista_info['motivo']}, Fecha: {$entrevista_info['fecha']}";
            $logger->data('Entrevista con apoderado eliminada', $detalles);
        }
        echo json_encode(['success' => true, 'msg' => 'Entrevista eliminada correctamente.']);
    } else {
        $logger->warning('Intento de eliminar entrevista inexistente', "Usuario ID: {$_SESSION['user_id']}, Entrevista ID: $id");
        echo json_encode(['success' => false, 'msg' => 'No se encontró la entrevista para eliminar o ya fue eliminada.']);
    }
} catch (Exception $e) {
    $logger->error('Error al eliminar entrevista con apoderado', "Usuario ID: {$_SESSION['user_id']}, Entrevista ID: $id, Error: " . $e->getMessage());
    http_response_code(500);
    echo json_encode(['success' => false, 'msg' => 'Error en el servidor al eliminar la entrevista: ' . $e->getMessage()]);
}
