<?php
// src/borrar_citacion.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 citacion 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 citacion 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 citacion antes de eliminarla para el log
    $stmt_info = $pdo->prepare("
        SELECT 
            c.motivo,
            c.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 citaciones_apoderados c
        JOIN alumnos a ON c.alumno_id = a.id
        JOIN familiares f ON c.familiar_id = f.id
        WHERE c.id = ?
    ");
    $stmt_info->execute([$id]);
    $citacion_info = $stmt_info->fetch(PDO::FETCH_ASSOC);

    // Elimina la citación
    $stmt = $pdo->prepare("DELETE FROM citaciones_apoderados WHERE id = ?");
    $stmt->execute([$id]);

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