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

Resumo:
Sistema de recomendação inteligente.
Baseado em:
- favoritos do usuário
- gênero predominante
- popularidade (views)
*/

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


/* =========================
   GÊNERO FAVORITO
========================= */
function cancao_get_preferred_genre($user_id) {

    $favoritos = get_user_meta($user_id, '_cancao_favoritos', true);

    if (!$favoritos || !is_array($favoritos)) return null;

    $generos_count = [];

    foreach ($favoritos as $post_id) {

        $terms = get_the_terms($post_id, 'genero');

        if ($terms) {
            foreach ($terms as $term) {
                $slug = $term->slug;
                $generos_count[$slug] = ($generos_count[$slug] ?? 0) + 1;
            }
        }
    }

    if (empty($generos_count)) return null;

    arsort($generos_count);

    return array_key_first($generos_count);
}


/* =========================
   QUERY RECOMENDADAS
========================= */
function cancao_get_recommendations($limit = 8) {

    $user_id = get_current_user_id();
    $preferred_genre = cancao_get_preferred_genre($user_id);

    $args = [
        'post_type' => 'musica',
        'posts_per_page' => $limit,
        'meta_key' => 'views',
        'orderby' => 'meta_value_num',
        'order' => 'DESC'
    ];

    if ($preferred_genre) {
        $args['tax_query'] = [
            [
                'taxonomy' => 'genero',
                'field' => 'slug',
                'terms' => $preferred_genre
            ]
        ];
    }

    return new WP_Query($args);
}