<?php
/**
 * api/ads.php — GET /api/ads
 *
 * Devuelve los anuncios de menú como array JSON [{title,url}, …] ordenados por
 * sort. Misma fuente que el bloque menu_ads[] de la config del dispositivo.
 *
 * Response: [ { "title": "...", "url": "..." }, ... ]
 */

declare(strict_types=1);

require_once __DIR__ . '/../lib/helpers.php';
require_once __DIR__ . '/../lib/device.php';

// Solo GET (lectura).
if (($_SERVER['REQUEST_METHOD'] ?? 'GET') !== 'GET') {
    json_out(['error' => 'method_not_allowed'], 405);
}

try {
    $ads = menu_ads_list();

    // json_out tipa el payload como array asociativo; aquí queremos un array
    // JSON puro, así que serializamos directamente.
    http_response_code(200);
    header('Content-Type: application/json; charset=utf-8');
    header('X-Content-Type-Options: nosniff');
    echo json_encode($ads, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
    exit;
} catch (Throwable $ex) {
    error_log('[api/ads] ' . $ex->getMessage());
    json_out(['error' => 'server_error'], 500);
}
