<?
#input $_GET['id_espacio_sgu']
define("INFORMATION", [
    'POST' => [
        'profesor_id',
        'horario_id',
        'estado',
        'comentario',
        'supervisor_id',
    ],
]);
#output rutas: [ ...ruta, salones: [{...salon}] ]
header('Content-Type: application/json charset=utf-8');
#return html
$ruta = "../";
require_once "../class/c_login.php";
// check method
try {
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        // check parameters
        $raw = file_get_contents('php://input');
        $post_data = json_decode($raw, true);
        // if it's a list
        // step 1: get subrutas
        if (empty($post_data)) {
            http_response_code(400);
            echo json_encode(['error' => 'No hay clases pendientes']);
            exit;
        }

        $data = $db->query(
            'INSERT INTO registro (profesor_id, horario_id, registro_fecha_supervisor, estado_supervisor_id, registro_fecha_ideal, supervisor_id, comentario)
            VALUES' .
            implode(',', array_map(fn($x) => "({$x['profesor_id']} , {$x['horario_id']}, NOW()," . (is_null($x['estado']) ? 'null' : $x['estado']) . ", NOW(), {$x['supervisor_id']}," . (empty($x['comentario']) ? 'null' : "'{$x['comentario']}'") . ')', $post_data))
            . ' ON CONFLICT (profesor_id, horario_id, registro_fecha_ideal) DO UPDATE SET estado_supervisor_id = EXCLUDED.estado_supervisor_id, registro_fecha_supervisor = NOW(), comentario = EXCLUDED.comentario, supervisor_id = EXCLUDED.supervisor_id
            RETURNING *'
        );
        echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    } else {
        http_response_code(405);
        echo json_encode(['error' => 'method not allowed']);
        exit;

    }

} catch (PDOException $th) {
    http_response_code(500);
    echo json_encode([
        'error' => $th->getMessage(),
        'query' => $db->getLastQuery(),
        'post_data' => $post_data,
    ], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    exit;
} catch (Exception $th) {
    http_response_code(500);
    echo json_encode([
        'error' => $th->getMessage(),
    ], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
    exit;
}