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

Resumo:
Arquivo central do tema Cancao Verdadeira.
Responsável por:
- Carregar CSS e JS corretamente (assets/)
- Evitar cache agressivo (compatível com WP Rocket)
- Registrar suporte do tema
- Registrar menus
- Carregar módulos da pasta /inc
- Preparar base para AJAX e player global
Código limpo, modular e otimizado para performance.
*/

if (!defined('ABSPATH')) exit;


/* =========================
   🎯 CARREGAR CSS E JS
========================= */
function cancao_enqueue_assets() {

    $theme_dir = get_stylesheet_directory();
    $theme_uri = get_stylesheet_directory_uri();

    // CSS principal
    if (file_exists($theme_dir . '/assets/css/main.css')) {
        wp_enqueue_style(
            'cancao-main-css',
            $theme_uri . '/assets/css/main.css',
            [],
            filemtime($theme_dir . '/assets/css/main.css')
        );
    }

    // JS principal
    if (file_exists($theme_dir . '/assets/js/main.js')) {
        wp_enqueue_script(
            'cancao-main-js',
            $theme_uri . '/assets/js/main.js',
            [],
            filemtime($theme_dir . '/assets/js/main.js'),
            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');


/* =========================
   📂 INCLUIR MÓDULOS
========================= */

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

foreach ($inc_files as $file) {

    $filepath = get_stylesheet_directory() . $file;

    if (file_exists($filepath)) {
        require_once $filepath;
    }
require_once get_stylesheet_directory() . '/inc/user-system.php';

}



/* =========================
   ⚡ OTIMIZAÇÕES
========================= */

// 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;
    }

}