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

Resumo:
Arquivo central do tema Cancao Verdadeira.
Responsável por:
- Carregar CSS e JS (com versionamento anti-cache)
- Suporte do tema
- Registro de menus
- Inclusão de módulos (CPT, meta, ajax, ranking, recomendação)
- Otimizações e segurança
*/

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


/* =========================
   CARREGAR ASSETS
========================= */
function cancao_enqueue_assets() {

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

    // CSS
    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
    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',
        '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');


/* =========================
   INCLUDES (MÓDULOS)
========================= */

$modules = [
    '/inc/cpt-musicas.php',
    '/inc/meta-fields.php',
    '/inc/ajax.php',
    '/inc/ranking.php',
    '/inc/user-system.php',
    '/inc/recommendation.php'
];

foreach ($modules as $file) {

    $path = get_stylesheet_directory() . $file;

    if (file_exists($path)) {
        require_once $path;
    }
}


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

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

// remover versão wp
remove_action('wp_head', 'wp_generator');

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