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

Resumo:
Sistema completo de playlists do usuário.
Permite criar playlists, adicionar músicas e listar.
*/

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


/* =========================
   CPT PLAYLIST
========================= */
function cancao_register_playlist_cpt() {

    register_post_type('playlist', [
        'labels' => [
            'name' => 'Playlists',
            'singular_name' => 'Playlist'
        ],
        'public' => false,
        'show_ui' => true,
        'supports' => ['title'],
    ]);
}
add_action('init', 'cancao_register_playlist_cpt');


/* =========================
   CRIAR PLAYLIST
========================= */
function cancao_create_playlist() {

    cancao_verify_nonce();

    $user_id = get_current_user_id();
    $name = sanitize_text_field($_POST['name']);

    $playlist_id = wp_insert_post([
        'post_type' => 'playlist',
        'post_title' => $name,
        'post_status' => 'publish',
        'post_author' => $user_id
    ]);

    update_post_meta($playlist_id, '_cancao_tracks', []);

    wp_send_json_success(['playlist_id' => $playlist_id]);
}
add_action('wp_ajax_cancao_create_playlist', 'cancao_create_playlist');


/* =========================
   ADD MÚSICA
========================= */
function cancao_add_to_playlist() {

    cancao_verify_nonce();

    $playlist_id = intval($_POST['playlist_id']);
    $track_id = intval($_POST['track_id']);

    $tracks = get_post_meta($playlist_id, '_cancao_tracks', true);

    if (!is_array($tracks)) $tracks = [];

    if (!in_array($track_id, $tracks)) {
        $tracks[] = $track_id;
    }

    update_post_meta($playlist_id, '_cancao_tracks', $tracks);

    wp_send_json_success();
}
add_action('wp_ajax_cancao_add_to_playlist', 'cancao_add_to_playlist');


/* =========================
   OBTER PLAYLISTS DO USUÁRIO
========================= */
function cancao_get_user_playlists() {

    return get_posts([
        'post_type' => 'playlist',
        'author' => get_current_user_id(),
        'numberposts' => -1
    ]);
}


/* =========================
   QUERY PLAYLIST
========================= */
function cancao_get_playlist_tracks($playlist_id) {

    $tracks = get_post_meta($playlist_id, '_cancao_tracks', true);

    if (!$tracks) return null;

    return new WP_Query([
        'post_type' => 'musica',
        'post__in' => $tracks,
        'orderby' => 'post__in'
    ]);
}