<?php
/**
 * Meus Afiliados - Área do Usuário
 * 
 * Lista os afiliados dos produtos do usuário logado
 */

// Proteção de autenticação (usuário comum apenas)
session_start();
require_once __DIR__ . '/../../backend/auth_helper.php';
requer_usuario('/dashboard/index.php');

// Conexão com o banco de dados
require __DIR__ . '/../../config/config_db.php';

// Obter dados do usuário logado
$usuario = usuario_logado();
$usuario_id = $usuario['id'];
$usuario_nome = $usuario['nome'] ?? 'Usuário';

// Buscar afiliados dos produtos do usuário
try {
    $sql = "SELECT 
                a.id as afiliacao_id,
                u.id as afiliado_id,
                u.nome as afiliado_nome,
                u.email as afiliado_email,
                p.id as produto_id,
                p.nome as produto_nome,
                COUNT(t.id) as total_vendas,
                SUM(CASE WHEN t.status = 'Aprovado' THEN t.valor ELSE 0 END) as valor_total_aprovado,
                SUM(CASE WHEN t.status = 'Aprovado' THEN 1 ELSE 0 END) as vendas_aprovadas,
                COALESCE(SUM(vc.valor_afiliado), 0) as comissao_total,
                a.status as afiliacao_status
            FROM afiliacoes a
            INNER JOIN usuarios u ON u.id = a.usuario_id
            INNER JOIN produtos p ON p.id = a.produto_id
            LEFT JOIN transacoes t ON t.afiliado_id = a.usuario_id 
                AND t.produto_id = a.produto_id 
                AND t.produtor_id = :produtor_id
            LEFT JOIN vendas_comissoes vc ON vc.transacao_id = t.id AND vc.afiliado_id = a.usuario_id
            WHERE p.usuario_id = :produtor_id
            GROUP BY a.id, u.id, u.nome, u.email, p.id, p.nome, a.status
            ORDER BY valor_total_aprovado DESC, total_vendas DESC";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([':produtor_id' => $usuario_id]);
    $afiliados = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    error_log("Erro ao buscar afiliados: " . $e->getMessage());
    $afiliados = [];
}

// Calcular estatísticas gerais
$total_afiliados = count($afiliados);
$afiliados_ativos = count(array_filter($afiliados, function($a) { return $a['afiliacao_status'] === 'ativo'; }));
$total_comissoes = array_sum(array_column($afiliados, 'comissao_total'));
?>
<style>
    .afiliados-container {
        padding: 20px;
        max-width: 1200px;
        margin: 0 auto;
    }

    .header {
        text-align: center;
        padding: 20px;
        margin-bottom: 30px;
    }

    .header h1 {
        font-size: 32px;
        font-weight: 800;
        margin-bottom: 10px;
        color: var(--text-main);
    }

    .header p {
        color: var(--text-muted);
        font-size: 16px;
    }

    .back-link {
        display: inline-block;
        margin-bottom: 20px;
        color: var(--primary-color, #667eea);
        text-decoration: none;
        font-weight: 600;
        padding: 10px 20px;
        background: var(--bg-card);
        border: 1px solid var(--border-color);
        border-radius: 8px;
        transition: all 0.3s;
    }

    .back-link:hover {
        background: var(--bg-card);
        transform: translateX(-5px);
        border-color: var(--primary-color, #667eea);
    }

    .stats-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        gap: 20px;
        margin-bottom: 40px;
    }

    .stat-card {
        background: var(--bg-card);
        padding: 25px;
        border-radius: 15px;
        border: 1px solid var(--border-color);
    }

    .stat-card h3 {
        font-size: 32px;
        font-weight: 800;
        margin-bottom: 10px;
        color: var(--color_status_success, #4ade80);
    }

    .stat-card p {
        color: var(--text-muted);
        font-size: 14px;
    }

    .table-container {
        background: var(--bg-card);
        border-radius: 15px;
        overflow: hidden;
        border: 1px solid var(--border-color);
    }

    table {
        width: 100%;
        border-collapse: collapse;
    }

    thead {
        background: var(--bg-body);
    }

    th {
        padding: 15px;
        text-align: left;
        font-weight: 600;
        color: var(--text-main);
        border-bottom: 2px solid var(--border-color);
    }

    td {
        padding: 15px;
        border-bottom: 1px solid var(--border-color);
        color: var(--text-main);
    }

    tbody tr:hover {
        background: var(--bg-body);
    }

    .status {
        padding: 5px 10px;
        border-radius: 5px;
        font-size: 12px;
        font-weight: 600;
    }

    .status-ativo {
        background: var(--color_status_success, #4ade80);
        color: #ffffff;
    }

    .status-inativo {
        background: var(--color_status_danger, #f87171);
        color: #ffffff;
    }

    .status-pendente {
        background: var(--color_status_warning, #fbbf24);
        color: #ffffff;
    }

    .no-data {
        text-align: center;
        padding: 60px 20px;
        color: var(--text-muted);
    }

    @media (max-width: 768px) {
        .stats-grid {
            grid-template-columns: 1fr;
        }
        
        .table-container {
            overflow-x: auto;
        }
    }
</style>

<div class="afiliados-container">
    <a href="?page=home" class="back-link">
        <i class="fas fa-arrow-left"></i> Voltar para Área do Usuário
    </a>

    <div class="header">
        <h1><i class="fas fa-users"></i> Meus Afiliados</h1>
        <p>Gerencie os afiliados dos seus produtos</p>
    </div>

    <div class="stats-grid">
        <div class="stat-card">
            <h3><?= $total_afiliados; ?></h3>
            <p>Total de Afiliados</p>
        </div>
        <div class="stat-card">
            <h3><?= $afiliados_ativos; ?></h3>
            <p>Afiliados Ativos</p>
        </div>
        <div class="stat-card">
            <h3>R$ <?= number_format($total_comissoes, 2, ',', '.'); ?></h3>
            <p>Total em Comissões Pagas</p>
        </div>
    </div>

    <?php if (empty($afiliados)): ?>
        <div class="no-data">
            <i class="fas fa-users" style="font-size: 64px; margin-bottom: 20px; opacity: 0.5;"></i>
            <h2>Nenhum afiliado encontrado</h2>
            <p>Você ainda não possui afiliados para seus produtos.</p>
        </div>
    <?php else: ?>
        <div class="table-container">
            <table>
                <thead>
                    <tr>
                        <th>Afiliado</th>
                        <th>Produto</th>
                        <th>Vendas Realizadas</th>
                        <th>Vendas Aprovadas</th>
                        <th>Valor Total Gerado</th>
                        <th>Total em Comissões</th>
                        <th>Status</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($afiliados as $afiliado): 
                        $status_class = strtolower(str_replace(' ', '-', $afiliado['afiliacao_status'] ?? 'ativo'));
                    ?>
                    <tr>
                        <td>
                            <strong><?= htmlspecialchars($afiliado['afiliado_nome']); ?></strong><br>
                            <small style="color: var(--text-muted);"><?= htmlspecialchars($afiliado['afiliado_email']); ?></small>
                        </td>
                        <td><?= htmlspecialchars($afiliado['produto_nome']); ?></td>
                        <td><?= intval($afiliado['total_vendas']); ?></td>
                        <td><?= intval($afiliado['vendas_aprovadas']); ?></td>
                        <td>
                            <strong style="color: var(--color_status_success, #4ade80);">
                                R$ <?= number_format(floatval($afiliado['valor_total_aprovado']), 2, ',', '.'); ?>
                            </strong>
                        </td>
                        <td>
                            <strong style="color: var(--primary-color, #667eea);">
                                R$ <?= number_format(floatval($afiliado['comissao_total']), 2, ',', '.'); ?>
                            </strong>
                        </td>
                        <td>
                            <span class="status status-<?= htmlspecialchars($status_class); ?>">
                                <?= htmlspecialchars(ucfirst($afiliado['afiliacao_status'] ?? 'Ativo')); ?>
                            </span>
                        </td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    <?php endif; ?>
</div>







