<?php
// includes/notification-functions.php

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Acesso direto bloqueado
}

/**
 * Envia notificações por email quando um artista submete uma nova música.
 */
function onemz_send_submission_notification( $submission_id ) {
    global $wpdb;
    
    $submission = $wpdb->get_row( $wpdb->prepare(
        "SELECT * FROM {$wpdb->prefix}rmbz_artist_submissions WHERE id = %d",
        $submission_id
    ) );

    if ( ! $submission ) return false;

    $artist_wallet = $wpdb->get_row( $wpdb->prepare(
        "SELECT user_email, user_nome FROM {$wpdb->prefix}rmbz_wallets WHERE user_telemovel = %s",
        $submission->artist_telemovel
    ) );

    $artist_email = $artist_wallet ? $artist_wallet->user_email : '';
    $artist_name  = $artist_wallet ? $artist_wallet->user_nome : 'Artista';
    
    $site_name = get_bloginfo('name');
    $admin_email = get_option('admin_email');
    
    // Verificação de segurança: Garantir que o admin_email é válido. Se não for, não envia.
    if ( ! is_email( $admin_email ) ) {
        return false;
    }

    $headers = ['Content-Type: text/html; charset=UTF-8'];
    $admin_headers = array_merge($headers, ['From: ' . $site_name . ' <' . $admin_email . '>']);

    // Verifica se o email é válido, se não for nulo e se não contém '@1mz.local' de forma segura para o PHP 8+
    if ( is_email($artist_email) && ( empty($artist_email) || strpos( (string)$artist_email, '@1mz.local' ) === false ) ) {
        $subject = "[$site_name] Música Recebida: " . $submission->music_title;
        
        $body  = "<p>Olá <strong>" . esc_html($artist_name) . "</strong>,</p>";
        $body .= "<p>A sua música <strong>" . esc_html($submission->music_title) . "</strong> foi recebida com sucesso pela equipa 1MZ Records.</p>";
        $body .= "<p>O estado atual é: <strong>PENDENTE DE AVALIAÇÃO</strong>.</p>";
        $body .= "<p>Vamos analisar a qualidade e o potencial da faixa. Se for aprovada, receberá uma notificação com a proposta de contrato e o roteiro do videoclipe.</p>";
        $body .= "<hr>";
        $body .= "<p><small>Género: " . esc_html($submission->music_genre) . "<br>Cenário: " . esc_html($submission->scenario_type) . "<br>Data: " . esc_html($submission->submission_date) . "</small></p>";
        
        wp_mail( $artist_email, $subject, $body, $admin_headers );
    }

    $notify_email = get_option('rmbz_admin_notification_email', $admin_email);
    
    if ( is_email($notify_email) ) {
        $admin_subject = "[$site_name] NOVA SUBMISSÃO: " . $submission->music_title;
        
        $admin_body  = "<h2>Nova Música para Avaliar</h2>";
        $admin_body .= "<p>Um artista acabou de submeter uma música via subscrição.</p>";
        $admin_body .= "<ul>";
        $admin_body .= "<li><strong>Artista:</strong> " . esc_html($artist_name) . " (" . esc_html($submission->artist_telemovel) . ")</li>";
        $admin_body .= "<li><strong>Música:</strong> " . esc_html($submission->music_title) . "</li>";
        $admin_body .= "<li><strong>Género:</strong> " . esc_html($submission->music_genre) . "</li>";
        $admin_body .= "<li><strong>Cenário Pedido:</strong> " . esc_html($submission->scenario_type) . "</li>";
        $admin_body .= "<li><strong>Ficheiro:</strong> <a href='" . esc_url($submission->music_file_url) . "'>Ouvir / Baixar MP3</a></li>";
        $admin_body .= "</ul>";
        
        $admin_link = admin_url('admin.php?page=rmbz-dashboard'); 
        $admin_body .= "<p><a href='" . esc_url($admin_link) . "' style='background:#f0b90b; color:#000; padding:10px 15px; text-decoration:none; border-radius:5px; font-weight:bold;'>Ir para Painel de Audições</a></p>";

        return wp_mail( $notify_email, $admin_subject, $admin_body, $admin_headers );
    }

    return false;
}


/**
 * Envia notificação quando uma música é APROVADA e o contrato é gerado.
 */
function onemz_send_contract_notification( $project_id ) {
    global $wpdb;
    
    $project = $wpdb->get_row( $wpdb->prepare(
        "SELECT p.*, s.music_title 
         FROM {$wpdb->prefix}rmbz_artist_projects p
         JOIN {$wpdb->prefix}rmbz_artist_submissions s ON p.submission_id = s.id
         WHERE p.id = %d",
        $project_id
    ) );

    if ( ! $project ) return false;

    $artist_wallet = $wpdb->get_row( $wpdb->prepare(
        "SELECT user_email, user_nome FROM {$wpdb->prefix}rmbz_wallets WHERE user_telemovel = %s",
        $project->artist_telemovel
    ) );

    $artist_email = $artist_wallet ? $artist_wallet->user_email : '';
    $artist_name  = $artist_wallet ? $artist_wallet->user_nome : 'Artista';

    // Verificação de segurança de string para evitar o erro do "strpos()"
    if ( ! is_email($artist_email) || ( ! empty($artist_email) && strpos( (string)$artist_email, '@1mz.local' ) !== false ) ) {
        return false; 
    }

    $site_name = get_bloginfo('name');
    
    $admin_email = get_option('admin_email');
    if ( ! is_email( $admin_email ) ) { return false; } // Fail-safe
    
    $headers = ['Content-Type: text/html; charset=UTF-8', 'From: ' . $site_name . ' <' . $admin_email . '>'];

    $subject = "[$site_name] PARABÉNS! Música Aprovada: " . $project->music_title;

    $body  = "<h2>Música Aprovada! 🎵🎬</h2>";
    $body .= "<p>Olá <strong>" . esc_html($artist_name) . "</strong>,</p>";
    $body .= "<p>Temos o prazer de informar que a sua música <strong>" . esc_html($project->music_title) . "</strong> foi selecionada pela 1MZ Records!</p>";
    $body .= "<p><strong>O que acontece agora?</strong></p>";
    $body .= "<p>Foi gerado um contrato automático para a produção do seu videoclipe. Já criámos um painel de acompanhamento na sua conta onde pode:</p>";
    $body .= "<ul>";
    $body .= "<li>Ler o roteiro do vídeo;</li>";
    $body .= "<li>Enviar sugestões de alteração à equipa;</li>";
    $body .= "<li>Ver os custos de produção (cenário, equipamento);</li>";
    $body .= "<li>Acompanhar o estado da produção (Filmagem, Edição, etc).</li>";
    $body .= "</ul>";
    
    $link_conta = home_url('/minha-conta/');
    $body .= "<p style='text-align:center; margin-top:20px;'><a href='" . esc_url($link_conta) . "' style='background:#2ecc71; color:#fff; padding:15px 25px; text-decoration:none; border-radius:5px; font-weight:bold;'>Ver Meu Contrato</a></p>";

    return wp_mail( $artist_email, $subject, $body, $headers );
}


/**
 * Envia notificação quando uma música é REJEITADA.
 */
function onemz_send_rejection_notification( $submission_id, $reason ) {
    global $wpdb;
    
    $submission = $wpdb->get_row( $wpdb->prepare(
        "SELECT * FROM {$wpdb->prefix}rmbz_artist_submissions WHERE id = %d",
        $submission_id
    ) );

    if ( ! $submission ) return false;

    $artist_wallet = $wpdb->get_row( $wpdb->prepare(
        "SELECT user_email, user_nome FROM {$wpdb->prefix}rmbz_wallets WHERE user_telemovel = %s",
        $submission->artist_telemovel
    ) );

    $artist_email = $artist_wallet ? $artist_wallet->user_email : '';
    $artist_name  = $artist_wallet ? $artist_wallet->user_nome : 'Artista';

    // Verificação de segurança
    if ( ! is_email($artist_email) || ( ! empty($artist_email) && strpos( (string)$artist_email, '@1mz.local' ) !== false ) ) {
        return false;
    }

    $site_name = get_bloginfo('name');
    
    $admin_email = get_option('admin_email');
    if ( ! is_email( $admin_email ) ) { return false; } // Fail-safe
    
    $headers = ['Content-Type: text/html; charset=UTF-8', 'From: ' . $site_name . ' <' . $admin_email . '>'];

    $subject = "[$site_name] Estado da sua música: " . $submission->music_title;

    $body  = "<p>Olá <strong>" . esc_html($artist_name) . "</strong>,</p>";
    $body .= "<p>Obrigado por enviar a sua música <strong>" . esc_html($submission->music_title) . "</strong> para avaliação na 1MZ Records.</p>";
    $body .= "<p>Infelizmente, desta vez a sua faixa <strong>não foi selecionada</strong> para produção de videoclipe.</p>";
    
    $body .= "<div style='background:#fff3cd; border:1px solid #ffeeba; padding:15px; margin:20px 0; border-radius:5px; color:#856404;'>";
    $body .= "<strong>Motivo / Feedback da Equipa:</strong><br>";
    $body .= "<em>" . nl2br(esc_html($reason)) . "</em>";
    $body .= "</div>";

    $body .= "<p>Não desanime! Leia o feedback, trabalhe na sua arte e envie uma nova música em breve. A sua subscrição continua ativa.</p>";
    
    return wp_mail( $artist_email, $subject, $body, $headers );
}