<?php
/**
 * ibo.php — Front controller de la capa IBO (app com.iptvrebr.glass).
 *
 * El .htaccess reescribe las rutas extensionless que llama la app (auth, add,
 * update, delete, has_playlist, parent-control/update) y los .php (vpns.php,
 * webview.php) a este archivo. Aquí se enruta por el FINAL de la ruta, así el
 * panel funciona bajo cualquier prefijo base (_panelUrl = https://host/algo/).
 *
 * El admin de PANEL/ (index.php, dashboard.php, login.php, devices.php, /api/…)
 * NO pasa por aquí; solo las rutas IBO.
 */

declare(strict_types=1);

require __DIR__ . '/lib/ibo.php';

$path = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/';
$path = rtrim($path, '/');
$last = strtolower(basename($path));

if (substr($path, -strlen('/parent-control/update')) === '/parent-control/update') {
    ibo_dispatch('parent-control/update');
}

$map = [
    'auth'         => 'auth',
    'add'          => 'add',
    'update'       => 'update',
    'delete'       => 'delete',
    'has_playlist' => 'has_playlist',
    'vpns.php'     => 'vpns',
    'webview.php'  => 'webview',
];
if (isset($map[$last])) {
    ibo_dispatch($map[$last]);
}

http_response_code(404);
header('Content-Type: application/json');
echo json_encode(['status' => false, 'error' => 'unknown']);
