<?php
/*
Arquivo: wp-content/themes/cancao-verdadeira/functions.php

Resumo:
Este arquivo é o núcleo do tema child "cancao-verdadeira".
Responsável por carregar estilos e scripts, registrar menus,
ativar suporte do WordPress (thumbnails, title, etc) e organizar
a estrutura modular do projeto através da inclusão da pasta /inc.
Também prepara o ambiente para futuras integrações como AJAX,
player global, ranking e sistema de usuários.
Evita sobrecarga e mantém o código organizado e escalável.
*/

if (!defined('ABSPATH')) {
    exit; // Segurança básica
}

/* =========================
   🎯 CARREGAR ESTILOS E SCRIPTS
========================= */
function cancao_enqueue_assets() {

    // CSS do tema pai (Astra)
    wp_enqueue_style('astra-parent', get_template_directory_uri() . '/style.css');

    // CSS do tema filho
    wp_enqueue_style('cancao-style', get_stylesheet_uri(), ['astra-parent'], '1.0');

    // JS principal
    wp_enqueue_script(
        'cancao-main-js',
        get_stylesheet_directory_uri() . '/assets/js/main.js',
        ['jquery'],
        '1.0',
        true
    );

    // AJAX global
    wp_localize_script('cancao-main-js', 'cancao_ajax', [
        'ajax_url' => admin_url('admin-ajax.php'),
        'nonce'    => wp_create_nonce('cancao_nonce')
    ]);
}
add_action('wp_enqueue_scripts', 'cancao_enqueue_assets');


/* =========================
   🧱 SUPORTE DO TEMA
========================= */
function cancao_theme_setup() {

    add_theme_support('title-tag');
    add_theme_support('post-thumbnails');

    add_theme_support('html5', [
        'search-form',
        'comment-form',
        'gallery',
        'caption'
    ]);

    add_theme_support('custom-logo');

}
add_action('after_setup_theme', 'cancao_theme_setup');


/* =========================
   🧭 MENUS
========================= */
function cancao_register_menus() {
    register_nav_menus([
        'menu-principal' => 'Menu Principal',
        'menu-mobile'    => 'Menu Mobile'
    ]);
}
add_action('init', 'cancao_register_menus');


/* =========================
   📂 MÓDULOS (/inc)
========================= */

$inc_files = [
    '/inc/cpt-musicas.php',
    '/inc/meta-fields.php',
    '/inc/ajax.php',
    '/inc/ranking.php',
    '/inc/helpers.php'
];

foreach ($inc_files as $file) {
    $filepath = get_stylesheet_directory() . $file;
    if (file_exists($filepath)) {
        require_once $filepath;
    }
}


/* =========================
   ⚡ PERFORMANCE
========================= */

// Remove emojis
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

// Remove versão WP
remove_action('wp_head', 'wp_generator');

// Remove embeds
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');


/* =========================
   🔐 SEGURANÇA AJAX
========================= */
function cancao_verify_nonce() {
    if (!isset($_REQUEST['nonce']) || !wp_verify_nonce($_REQUEST['nonce'], 'cancao_nonce')) {
        wp_send_json_error('Nonce inválido');
        exit;
    }
}

wp_enqueue_style(
    'cancao-main-css',
    get_stylesheet_directory_uri() . '/assets/css/main.css',
    [],
    '1.0'
);