<?php
/**
 * Financeiro - Área do Usuário
 * 
 * Visão geral de saldos e comissões
 */

// 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';
require_once __DIR__ . '/../../backend/financeiro_helper.php';

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

// Obter saldo do usuário
$saldo = obter_saldo_usuario($usuario_id);

// Calcular totais como produtor e afiliado
try {
    // Total como produtor
    $sql_produtor = "SELECT 
                        COUNT(vc.id) as total_vendas,
                        SUM(vc.valor_produtor) as total_ganho
                     FROM vendas_comissoes vc
                     INNER JOIN transacoes t ON t.id = vc.transacao_id
                     WHERE vc.produtor_id = :usuario_id
                     AND t.status = 'Aprovado'";
    $stmt_produtor = $pdo->prepare($sql_produtor);
    $stmt_produtor->execute([':usuario_id' => $usuario_id]);
    $stats_produtor = $stmt_produtor->fetch(PDO::FETCH_ASSOC);
    
    // Total como afiliado
    $sql_afiliado = "SELECT 
                        COUNT(vc.id) as total_vendas,
                        SUM(vc.valor_afiliado) as total_ganho
                     FROM vendas_comissoes vc
                     INNER JOIN transacoes t ON t.id = vc.transacao_id
                     WHERE vc.afiliado_id = :usuario_id
                     AND t.status = 'Aprovado'";
    $stmt_afiliado = $pdo->prepare($sql_afiliado);
    $stmt_afiliado->execute([':usuario_id' => $usuario_id]);
    $stats_afiliado = $stmt_afiliado->fetch(PDO::FETCH_ASSOC);
    
    // Últimas vendas (produtor + afiliado)
    $sql_vendas = "SELECT 
                      vc.id,
                      vc.transacao_id,
                      vc.valor_produtor,
                      vc.valor_afiliado,
                      vc.created_at,
                      t.valor as valor_total,
                      t.descricao as produto_nome,
                      CASE 
                          WHEN vc.produtor_id = :usuario_id THEN 'produtor'
                          WHEN vc.afiliado_id = :usuario_id THEN 'afiliado'
                      END as tipo
                   FROM vendas_comissoes vc
                   INNER JOIN transacoes t ON t.id = vc.transacao_id
                   WHERE (vc.produtor_id = :usuario_id OR vc.afiliado_id = :usuario_id)
                   AND t.status = 'Aprovado'
                   ORDER BY vc.created_at DESC
                   LIMIT 10";
    $stmt_vendas = $pdo->prepare($sql_vendas);
    $stmt_vendas->execute([':usuario_id' => $usuario_id]);
    $ultimas_vendas = $stmt_vendas->fetchAll(PDO::FETCH_ASSOC);
    
} catch (PDOException $e) {
    error_log("Erro ao buscar estatísticas financeiras: " . $e->getMessage());
    $stats_produtor = ['total_vendas' => 0, 'total_ganho' => 0];
    $stats_afiliado = ['total_vendas' => 0, 'total_ganho' => 0];
    $ultimas_vendas = [];
}
?>
<style>
    .financeiro-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);
    }

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

    .saldo-card {
        background: var(--bg-card);
        padding: 25px;
        border-radius: 15px;
        border: 1px solid var(--border-color);
        transition: all 0.3s;
    }

    .saldo-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
    }

    .saldo-card.disponivel {
        border-color: var(--color_status_success, #4ade80);
    }

    .saldo-card.pendente {
        border-color: var(--color_status_warning, #fbbf24);
    }

    .saldo-card.bloqueado {
        border-color: var(--color_status_danger, #f87171);
    }

    .saldo-card h3 {
        font-size: 14px;
        font-weight: 600;
        color: var(--text-muted);
        margin-bottom: 10px;
        text-transform: uppercase;
        letter-spacing: 1px;
    }

    .saldo-card .valor {
        font-size: 32px;
        font-weight: 800;
        margin-bottom: 10px;
    }

    .saldo-card.disponivel .valor {
        color: var(--color_status_success, #4ade80);
    }

    .saldo-card.pendente .valor {
        color: var(--color_status_warning, #fbbf24);
    }

    .saldo-card.bloqueado .valor {
        color: var(--color_status_danger, #f87171);
    }

    .stats-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 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: 18px;
        font-weight: 600;
        margin-bottom: 15px;
        color: var(--text-main);
    }

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

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

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

    .vendas-container h2 {
        font-size: 24px;
        font-weight: 700;
        margin-bottom: 20px;
        color: var(--text-main);
    }

    .vendas-list {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }

    .venda-item {
        background: var(--bg-body);
        padding: 15px;
        border-radius: 10px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        border: 1px solid var(--border-color);
    }

    .venda-item .info {
        flex: 1;
    }

    .venda-item .produto {
        font-weight: 600;
        margin-bottom: 5px;
        color: var(--text-main);
    }

    .venda-item .data {
        font-size: 12px;
        color: var(--text-muted);
    }

    .venda-item .valor {
        font-size: 18px;
        font-weight: 700;
        color: var(--color_status_success, #4ade80);
    }

    .venda-item .tipo {
        font-size: 12px;
        padding: 3px 8px;
        border-radius: 5px;
        margin-left: 10px;
    }

    .tipo-produtor {
        background: var(--primary-color, #667eea);
        color: #ffffff;
    }

    .tipo-afiliado {
        background: var(--primary-color-hover, #764ba2);
        color: #ffffff;
    }

    .actions {
        display: flex;
        gap: 15px;
        margin-top: 30px;
    }

    .btn {
        padding: 15px 30px;
        border-radius: 8px;
        text-decoration: none;
        font-weight: 600;
        transition: all 0.3s;
        display: inline-block;
    }

    .btn-primary {
        background: var(--primary-color, #667eea);
        color: #ffffff;
    }

    .btn-primary:hover {
        transform: translateY(-2px);
        box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
    }

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

    @media (max-width: 768px) {
        .saldo-grid, .stats-grid {
            grid-template-columns: 1fr;
        }
        
        .venda-item {
            flex-direction: column;
            align-items: flex-start;
        }
    }
</style>

<div class="financeiro-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-wallet"></i> Financeiro</h1>
        <p>Gerencie seus saldos e comissões</p>
    </div>

    <div class="saldo-grid">
        <div class="saldo-card disponivel">
            <h3><i class="fas fa-check-circle"></i> Saldo Disponível</h3>
            <div class="valor">R$ <?= number_format(floatval($saldo['saldo_disponivel'] ?? 0), 2, ',', '.'); ?></div>
            <p style="font-size: 12px; color: var(--text-muted);">Disponível para saque</p>
        </div>
        
        <div class="saldo-card pendente">
            <h3><i class="fas fa-clock"></i> Saldo Pendente</h3>
            <div class="valor">R$ <?= number_format(floatval($saldo['saldo_pendente'] ?? 0), 2, ',', '.'); ?></div>
            <p style="font-size: 12px; color: var(--text-muted);">Aguardando liberação</p>
        </div>
        
        <div class="saldo-card bloqueado">
            <h3><i class="fas fa-lock"></i> Saldo Bloqueado</h3>
            <div class="valor">R$ <?= number_format(floatval($saldo['saldo_bloqueado'] ?? 0), 2, ',', '.'); ?></div>
            <p style="font-size: 12px; color: var(--text-muted);">Em processamento de saque</p>
        </div>
    </div>

    <div class="stats-grid">
        <div class="stat-card">
            <h3><i class="fas fa-chart-line"></i> Total como Produtor</h3>
            <div class="valor">R$ <?= number_format(floatval($stats_produtor['total_ganho'] ?? 0), 2, ',', '.'); ?></div>
            <div class="info"><?= intval($stats_produtor['total_vendas'] ?? 0); ?> vendas aprovadas</div>
        </div>
        
        <div class="stat-card">
            <h3><i class="fas fa-handshake"></i> Total como Afiliado</h3>
            <div class="valor">R$ <?= number_format(floatval($stats_afiliado['total_ganho'] ?? 0), 2, ',', '.'); ?></div>
            <div class="info"><?= intval($stats_afiliado['total_vendas'] ?? 0); ?> vendas aprovadas</div>
        </div>
    </div>

    <div class="actions">
        <a href="?page=solicitar_saque" class="btn btn-primary">
            <i class="fas fa-money-bill-wave"></i> Solicitar Saque
        </a>
        <a href="?page=meus_saques" class="btn btn-primary">
            <i class="fas fa-list"></i> Meus Saques
        </a>
    </div>

    <div class="vendas-container" style="margin-top: 40px;">
        <h2><i class="fas fa-history"></i> Últimas Vendas</h2>
        
        <?php if (empty($ultimas_vendas)): ?>
            <div class="no-data">
                <i class="fas fa-inbox" style="font-size: 48px; margin-bottom: 15px; opacity: 0.5;"></i>
                <p>Nenhuma venda encontrada</p>
            </div>
        <?php else: ?>
            <div class="vendas-list">
                <?php foreach ($ultimas_vendas as $venda): ?>
                    <div class="venda-item">
                        <div class="info">
                            <div class="produto"><?= htmlspecialchars($venda['produto_nome']); ?></div>
                            <div class="data"><?= date('d/m/Y H:i', strtotime($venda['created_at'])); ?></div>
                        </div>
                        <div style="display: flex; align-items: center;">
                            <div class="valor">
                                R$ <?= number_format(floatval($venda['tipo'] === 'produtor' ? $venda['valor_produtor'] : $venda['valor_afiliado']), 2, ',', '.'); ?>
                            </div>
                            <span class="tipo tipo-<?= $venda['tipo']; ?>">
                                <?= $venda['tipo'] === 'produtor' ? 'Produtor' : 'Afiliado'; ?>
                            </span>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>
        <?php endif; ?>
    </div>
</div>
