<?php
/**
 * [1.6.117] PEDIDOS DE REMOÇÃO DE CONTENT ID — SCHEMA
 *
 * Tabela única `rmbz_contentid_requests`:
 *   - Cada linha = 1 pedido feito pelo artista para remover claim de
 *     um vídeo YouTube específico relacionado com um release dele
 *   - tracks_affected = JSON array com IDs das faixas afectadas
 *     (single = 1 elemento, álbum = N elementos ou "all")
 *
 * Padrão: dbDelta, idempotente, hook admin_init com lock.
 *
 * @package 1MZ_For_Artists
 * @since 1.6.117
 */

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


/**
 * Cria/actualiza tabela. Idempotente.
 */
function rmbz_contentid_install_tables() {
    global $wpdb;
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE {$wpdb->prefix}rmbz_contentid_requests (
        id bigint(20) NOT NULL AUTO_INCREMENT,
        release_id bigint(20) NOT NULL,
        artist_telemovel varchar(20) NOT NULL,
        video_url varchar(500) NOT NULL,
        video_id varchar(32) DEFAULT NULL,
        tracks_affected longtext DEFAULT NULL,
        reason text DEFAULT NULL,
        status varchar(20) NOT NULL DEFAULT 'pendente',
        admin_response text DEFAULT NULL,
        processed_at datetime DEFAULT NULL,
        processed_by varchar(60) DEFAULT NULL,
        created_at datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
        PRIMARY KEY  (id),
        KEY idx_release (release_id),
        KEY idx_artist (artist_telemovel),
        KEY idx_status (status),
        KEY idx_video (video_id),
        KEY idx_created (created_at)
    ) ENGINE=InnoDB $charset_collate;";

    require_once ABSPATH . 'wp-admin/includes/upgrade.php';
    dbDelta( $sql );
}


/**
 * Hook: garante que a tabela existe em admin_init.
 */
add_action( 'admin_init', function () {
    $lock_key = 'rmbz_contentid_schema_lock';
    if ( get_transient( $lock_key ) ) {
        return;
    }
    set_transient( $lock_key, 1, DAY_IN_SECONDS );

    global $wpdb;
    $table = $wpdb->prefix . 'rmbz_contentid_requests';
    if ( $wpdb->get_var( "SHOW TABLES LIKE '$table'" ) !== $table ) {
        rmbz_contentid_install_tables();
    }
}, 20 );
