// File: inc/ajax-play.php

<?php
/**
 * Registro de play validado (>=30s)
 */

add_action('wp_ajax_cv_register_play', 'cv_register_play');
add_action('wp_ajax_nopriv_cv_register_play', 'cv_register_play');

function cv_register_play() {

    if (!isset($_POST['song_id'])) {
        wp_send_json_error();
    }

    global $wpdb;

    $song_id = intval($_POST['song_id']);
    $user_id = get_current_user_id();
    $ip      = $_SERVER['REMOTE_ADDR'];

    $table = $wpdb->prefix . 'cv_plays_log';

    /**
     * Anti-fraude básico:
     * impede múltiplos plays em curto período
     */
    $recent = $wpdb->get_var($wpdb->prepare("
        SELECT COUNT(*) FROM $table
        WHERE song_id = %d
        AND ip = %s
        AND created_at > NOW() - INTERVAL 2 MINUTE
    ", $song_id, $ip));

    if ($recent > 0) {
        wp_send_json_success(['status' => 'ignored']);
    }

    /**
     * Insere log
     */
    $wpdb->insert($table, [
        'user_id' => $user_id,
        'song_id' => $song_id,
        'ip' => $ip
    ]);

    /**
     * Incrementa plays totais
     */
    $plays = get_post_meta($song_id, '_cv_plays', true);
    update_post_meta($song_id, '_cv_plays', intval($plays) + 1);

    /**
     * Incrementa plays últimos 7 dias
     */
    $plays7 = get_post_meta($song_id, '_cv_plays_7d', true);
    update_post_meta($song_id, '_cv_plays_7d', intval($plays7) + 1);

    wp_send_json_success(['status' => 'counted']);
}