<?php
require_once __DIR__ . '/../config/bootstrap.php';
admin_require_login();
require_method('GET');

$pdo = db();
$id = (int)get_str('id','0');
if ($id <= 0) json_response(['ok'=>false,'error'=>'ID inválido.'], 422);

$st = $pdo->prepare('SELECT * FROM eventos WHERE id=? LIMIT 1');
$st->execute([$id]);
$ev = $st->fetch();
if (!$ev) json_response(['ok'=>false,'error'=>'Evento não encontrado.'], 404);

$cfg = json_decode($ev['config_json'], true);
if (!is_array($cfg)) $cfg = [];

function collect_asset_ids($arr, &$ids){
  if (is_array($arr)) {
    foreach($arr as $k=>$v){
      if ($k === 'asset_id' && (is_int($v) || ctype_digit((string)$v))) {
        $n = (int)$v;
        if ($n > 0) $ids[$n] = true;
      } else {
        collect_asset_ids($v, $ids);
      }
    }
  }
}

$ids = [];
collect_asset_ids($cfg, $ids);
$assets_map = [];
if ($ids) {
  $in = implode(',', array_fill(0, count($ids), '?'));
  $st2 = $pdo->prepare('SELECT id, arquivo FROM assets WHERE id IN ('. $in .')');
  $st2->execute(array_keys($ids));
  while($row = $st2->fetch()){
    // IMPORTANTE: retorna path já ajustado para subpasta (ex.: /framebuilder/storage/...)
    // para evitar 404 quando o projeto não está na raiz do domínio.
    $assets_map[(string)$row['id']] = build_url_path((string)$row['arquivo']);
  }
}

json_response([
  'ok' => true,
  'event' => [
    'id' => (int)$ev['id'],
    'token_publico' => $ev['token_publico'],
    'status' => $ev['status'],
    'nome_evento' => $ev['nome_evento'],
    'data_evento' => $ev['data_evento'],
    'destino' => $ev['destino'],
    'endereco' => $ev['endereco'],
    'created_at' => $ev['created_at'],
    'updated_at' => $ev['updated_at'],
    'published_at' => $ev['published_at'],
  ],
  'config' => $cfg,
  'assets' => $assets_map,
]);
