<?php
/*
Arquivo: wp-content/themes/cancao-verdadeira/inc/cpt-musicas.php

Resumo:
Este arquivo registra o Custom Post Type "musica", responsável por armazenar
todas as músicas do sistema (letras, capa, dados e integração com player).
Também cria a taxonomia "genero", que organiza o conteúdo em Sertanejo,
Gospel e Romântico, permitindo filtros, SEO e navegação estruturada.
Este é o núcleo do conteúdo do site, garantindo organização, escalabilidade
e performance. Define suporte a título, editor (letras), imagem destacada
(capa) e integração futura com ranking, favoritos e player.
*/


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


/* =========================
   🎵 REGISTRAR CPT: MUSICA
========================= */
function cancao_register_cpt_musica() {

    $labels = [
        'name'               => 'Músicas',
        'singular_name'      => 'Música',
        'add_new'            => 'Adicionar Nova',
        'add_new_item'       => 'Adicionar Nova Música',
        'edit_item'          => 'Editar Música',
        'new_item'           => 'Nova Música',
        'view_item'          => 'Ver Música',
        'search_items'       => 'Buscar Músicas',
        'not_found'          => 'Nenhuma música encontrada',
        'menu_name'          => 'Músicas'
    ];

    $args = [
        'labels'             => $labels,
        'public'             => true,
        'menu_icon'          => 'dashicons-format-audio',
        'supports'           => ['title', 'editor', 'thumbnail', 'comments'],
        'has_archive'        => true,
        'rewrite'            => ['slug' => 'musicas'],
        'show_in_rest'       => true, // Elementor + Gutenberg
        'menu_position'      => 5
    ];

    register_post_type('musica', $args);
}
add_action('init', 'cancao_register_cpt_musica');


/* =========================
   🎼 TAXONOMIA: GENERO
========================= */
function cancao_register_taxonomia_genero() {

    $labels = [
        'name'              => 'Gêneros',
        'singular_name'     => 'Gênero',
        'search_items'      => 'Buscar Gêneros',
        'all_items'         => 'Todos os Gêneros',
        'edit_item'         => 'Editar Gênero',
        'update_item'       => 'Atualizar Gênero',
        'add_new_item'      => 'Adicionar Novo Gênero',
        'new_item_name'     => 'Novo Gênero',
        'menu_name'         => 'Gêneros'
    ];

    $args = [
        'hierarchical'      => true, // tipo categoria
        'labels'            => $labels,
        'show_ui'           => true,
        'show_in_rest'      => true,
        'rewrite'           => ['slug' => 'genero']
    ];

    register_taxonomy('genero', ['musica'], $args);
}
add_action('init', 'cancao_register_taxonomia_genero');


/* =========================
   🎯 CRIAR TERMOS PADRÃO
========================= */
function cancao_criar_generos_padrao() {

    $generos = [
        'sertanejo',
        'gospel',
        'romantico'
    ];

    foreach ($generos as $genero) {
        if (!term_exists($genero, 'genero')) {
            wp_insert_term(ucfirst($genero), 'genero');
        }
    }
}
add_action('init', 'cancao_criar_generos_padrao');


/* =========================
   🧠 CUSTOMIZAÇÃO DO ADMIN
========================= */

// Adiciona coluna de gênero no admin
function cancao_add_coluna_genero($columns) {
    $columns['genero'] = 'Gênero';
    return $columns;
}
add_filter('manage_musica_posts_columns', 'cancao_add_coluna_genero');

// Preenche a coluna
function cancao_render_coluna_genero($column, $post_id) {
    if ($column === 'genero') {
        $terms = get_the_terms($post_id, 'genero');
        if ($terms && !is_wp_error($terms)) {
            $names = wp_list_pluck($terms, 'name');
            echo implode(', ', $names);
        } else {
            echo '—';
        }
    }
}
add_action('manage_musica_posts_custom_column', 'cancao_render_coluna_genero', 10, 2);