<?php
session_start();
require_once __DIR__ . '/../config/db_auto.php';
require_once __DIR__ . '/../config/paths.php';
require_once __DIR__ . '/secure_session.php';

// Seguridad: Solo administradores pueden ejecutar esta acción
require_role(['administrador'], true);

header('Content-Type: application/json');

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

$alumnos_ids = $input['alumnos_ids'] ?? [];
$anio_origen = $input['anio_origen'] ?? null;

if (empty($alumnos_ids) || !$anio_origen) {
    http_response_code(400);
    echo json_encode(['success' => false, 'error' => 'Datos incompletos: Se requieren IDs de alumnos y el año de origen.']);
    exit;
}

// Validar que los IDs sean numéricos
$alumnos_ids = array_filter($alumnos_ids, 'is_numeric');
$anio_origen = filter_var($anio_origen, FILTER_VALIDATE_INT);

if (empty($alumnos_ids) || !$anio_origen) {
    http_response_code(400);
    echo json_encode(['success' => false, 'error' => 'Datos inválidos.']);
    exit;
}

$pdo->beginTransaction();

try {
    // Crear los placeholders para la cláusula IN
    $placeholders = implode(',', array_fill(0, count($alumnos_ids), '?'));

    // Actualizamos el estado de la matrícula del año de origen a 'NO SIGUE'
    $sql = "UPDATE matriculas SET estado = 'NO SIGUE' WHERE anio = ? AND alumno_id IN ($placeholders)";

    $params = array_merge([$anio_origen], $alumnos_ids);

    $stmt = $pdo->prepare($sql);
    $stmt->execute($params);

    $pdo->commit();
    echo json_encode(['success' => true, 'message' => $stmt->rowCount() . ' alumnos han sido marcados como "No Sigue" para el año ' . $anio_origen . '.']);
} catch (Exception $e) {
    $pdo->rollBack();
    http_response_code(500);
    echo json_encode(['success' => false, 'error' => 'Error al actualizar la base de datos: ' . $e->getMessage()]);
}
