<?php
// API para consultar y modificar el estado de edición de horario global
session_start();
header('Content-Type: application/json');

// Ruta del archivo donde se guarda el estado
$flagFile = __DIR__ . '/../../frontend/dashboard/horario_edicion_flag_db.json';

// Solo admin puede modificar
$isAdmin = (isset($_SESSION['is_admin']) && $_SESSION['is_admin']) || (isset($_SESSION['user_attuid']) && strtolower($_SESSION['user_attuid']) === 'admin');

// Si no existe el archivo, crearlo por defecto
if (!file_exists($flagFile)) {
    file_put_contents($flagFile, json_encode(['activar_crear_horario' => false, 'periodo' => null]));
}

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
    // Consultar estado
    $data = json_decode(file_get_contents($flagFile), true);
    echo json_encode([
        'activar_crear_horario' => !!($data['activar_crear_horario'] ?? false),
        'periodo' => $data['periodo'] ?? null
    ]);
    exit;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (!$isAdmin) {
        http_response_code(403);
        echo json_encode(['success' => false, 'error' => 'No autorizado']);
        exit;
    }
    
    $input = json_decode(file_get_contents('php://input'), true);
    $estado = isset($input['activar_crear_horario']) ? !!$input['activar_crear_horario'] : false;
    $periodo = $input['periodo'] ?? null;
    
    // Validar que si se activa, debe tener periodo
    if ($estado && !$periodo) {
        http_response_code(400);
        echo json_encode(['success' => false, 'error' => 'Debe especificar un periodo']);
        exit;
    }
    
    $dataToSave = [
        'activar_crear_horario' => $estado,
        'periodo' => $periodo
    ];
    
    file_put_contents($flagFile, json_encode($dataToSave, JSON_PRETTY_PRINT));
    echo json_encode(['success' => true, 'activar_crear_horario' => $estado, 'periodo' => $periodo]);
    exit;
}

http_response_code(405);
echo json_encode(['error' => 'Método no permitido']);

