<?php
// Arquivo: functions.php
// Local: wp-content/themes/cancao-verdadeira/functions.php
//
// Tema filho do Astra Pro - Canção Verdadeira
// Bootstrap principal: carrega todos os módulos do tema,
// registra scripts/estilos, inicializa CPT, taxonomias,
// shortcodes, widgets, área do usuário e área administrativa.
// Versão: 1.0 | cancaoverdadeira.com.br

defined('ABSPATH') || exit;

define('CV_VERSION', '1.0.0');
define('CV_DIR', get_stylesheet_directory());
define('CV_URL', get_stylesheet_directory_uri());
define('CV_INC', CV_DIR . '/inc/');

// ─── Carrega módulos do sistema ────────────────────────────────
$cv_modules = [
    'inc/cpt-musicas.php',
    'inc/db-tables.php',
    'inc/enqueue.php',
    'inc/image-optimizer.php',
    'inc/player.php',
    'inc/plays-counter.php',
    'inc/favorites.php',
    'inc/ratings.php',
    'inc/playlists.php',
    'inc/ranking.php',
    'inc/user-area.php',
    'inc/admin-area.php',
    'inc/seo-schema.php',
    'inc/newsletter.php',
    'inc/ajax-handlers.php',
    'inc/security.php',
    'inc/search.php',
    'shortcodes/shortcodes.php',
    'widgets/widgets.php',
];

foreach ($cv_modules as $module) {
    $path = CV_DIR . '/' . $module;
    if (file_exists($path)) {
        require_once $path;
    }
}

// ─── Herança do tema pai (Astra) ──────────────────────────────
add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style(
        'astra-parent-style',
        get_template_directory_uri() . '/style.css',
        [],
        CV_VERSION
    );
}, 5);

// ─── Suporte a features do tema ───────────────────────────────
add_action('after_setup_theme', function () {
    add_theme_support('post-thumbnails');
    add_theme_support('title-tag');
    add_theme_support('html5', ['search-form', 'comment-form', 'gallery', 'caption']);
    add_theme_support('custom-logo');
    add_image_size('cv-card', 300, 300, true);
    add_image_size('cv-hero', 1200, 400, true);
    add_image_size('cv-thumb', 56, 56, true);
    add_image_size('cv-artist', 400, 400, true);
    load_textdomain('cancao-verdadeira', CV_DIR . '/languages');
});

// ─── Menus de navegação ───────────────────────────────────────
add_action('after_setup_theme', function () {
    register_nav_menus([
        'cv-primary'  => __('Menu Principal', 'cancao-verdadeira'),
        'cv-sidebar'  => __('Menu Lateral', 'cancao-verdadeira'),
        'cv-footer'   => __('Rodapé', 'cancao-verdadeira'),
    ]);
});