<?php
header('Content-Type: application/json');
$ruta = "../";
require_once "../class/c_login.php";

// check if the session is started
if (Login::is_logged())
    $user = Login::get_user();
else {
    header('HTTP/1.1 401 Unauthorized');
    echo json_encode(['error' => 'No se ha iniciado sesión']);
    exit();
}

$ruta = "../";
require_once("../include/bd_pdo.php");

if (!isset($_GET['carrera_id'])) {
    echo json_encode([
        'status' => 'error',
        'error' => 'No se ha especificado una carrera'
    ]);
    exit();
}

try {
    $grupos = $db->query(<<<SQL
    SELECT distinct substring(horario_grupo, 7, 3)::int - 1 as horario_grupo FROM horario_view WHERE
        PERIODO_ID = :periodo_id AND
        (FACULTAD_ID = :facultad_id OR :facultad_id IS NULL) AND
        CARRERA_ID = :carrera_id
    GROUP BY horario_grupo
        ORDER BY horario_grupo ASC
    SQL,
        [
            ':periodo_id' => $user->periodo_id,
            ':facultad_id' => $user->facultad['facultad_id'],
            ':carrera_id' => $_GET['carrera_id'] ?? 0
        ]
    );
} catch (PDOException $ex) {
    echo json_encode([]);
    exit();
}

echo json_encode(array_map(fn($grupo) => $grupo['horario_grupo'], $grupos));