<?php
// app/app/tutorials.php
// Carrega configurações de tutoriais do tutorials.json em /public/

/**
 * Catálogo de páginas que podem ter tutorial.
 * Use o mesmo ID em $opts['page'] do tutorial_component.
 */
function tutorials_pages_catalog(): array {
    return [
        'painel'             => 'Painel',
        'conexoes'           => 'Conexões',
        'leads'              => 'Leads',
        'disparos'           => 'Disparos',
        'crm'                => 'CRM/Follow-Up',
        'funis'              => 'Funil de Prospecção',
        'webhook'            => 'Webhook',
        'agente-disparo'     => 'Agente de Disparo',
        'agente-atendimento' => 'Agente de Atendimento',
        'extrator-maps'      => 'Extrator Google Maps',
        'instagram'          => 'Extrator Instagram',
        'radarcnpj'          => 'Extrator Radar CNPJ',
        'gruposwpp'          => 'Extrator Grupos WhatsApp',
        'apioficial'         => 'API Oficial — Conexão',
        'disparos_oficial'   => 'API Oficial — Disparos',
        'dicas'              => 'Dicas',
        'evolua_chat'        => 'Evolua Chat',
        'minha_conta'        => 'Minha Conta',
        'atualizacoes'       => 'Atualizações',
        'suporte'            => 'Suporte',
    ];
}

/**
 * Lê o tutorials.json. Cache em memória.
 */
function tutorials_load(): array {
    static $cached = null;
    if ($cached !== null) return $cached;

    $jsonPath = __DIR__ . '/../public/tutorials.json';

    if (!file_exists($jsonPath) || !is_readable($jsonPath)) {
        $cached = ['pages' => []];
        return $cached;
    }

    $raw = @file_get_contents($jsonPath);
    if ($raw === false) {
        $cached = ['pages' => []];
        return $cached;
    }

    $data = json_decode($raw, true);
    if (!is_array($data) || !isset($data['pages']) || !is_array($data['pages'])) {
        $cached = ['pages' => []];
        return $cached;
    }

    // Valida cada entrada
    $valid = [];
    foreach ($data['pages'] as $pageId => $cfg) {
        if (!is_string($pageId) || $pageId === '') continue;
        if (!is_array($cfg)) continue;

        $valid[$pageId] = [
            'enabled'      => !empty($cfg['enabled']),
            'video_url'    => is_string($cfg['video_url']    ?? null) ? trim($cfg['video_url'])    : '',
            'extra_url'    => is_string($cfg['extra_url']    ?? null) ? trim($cfg['extra_url'])    : '',
            'extra_label'  => is_string($cfg['extra_label']  ?? null) ? trim($cfg['extra_label'])  : '',
        ];
    }

    $cached = ['pages' => $valid];
    return $cached;
}

/**
 * Retorna config de tutorial pra uma página.
 * Retorna null se: não existe OU está desabilitada OU não tem video_url.
 */
function tutorial_for_page(string $pageId): ?array {
    $data = tutorials_load();
    $cfg = $data['pages'][$pageId] ?? null;

    if (!$cfg) return null;
    if (empty($cfg['enabled'])) return null;
    if (empty($cfg['video_url'])) return null;

    return $cfg;
}
