<?php 
// Conexão com o banco de dados
// Nota: Autenticação já verificada em dashboard/index.php
require_once __DIR__ . '/../../config/config_db.php';

// Filtros opcionais
$filtro_status = isset($_GET['status']) ? $_GET['status'] : '';
$filtro_data_inicio = isset($_GET['data_inicio']) ? $_GET['data_inicio'] : '';
$filtro_data_fim = isset($_GET['data_fim']) ? $_GET['data_fim'] : '';
$busca = isset($_GET['busca']) ? $_GET['busca'] : '';

// Construir a consulta com filtros (incluindo produtor e afiliado)
$sql_pedidos = "SELECT t.id, t.nome, t.sobrenome, t.email, t.telefone, t.valor, t.descricao, t.status, t.created_at, t.tipo_pagamento,
                       t.produtor_id, t.afiliado_id,
                       u_produtor.nome as produtor_nome,
                       u_afiliado.nome as afiliado_nome
                FROM transacoes t
                LEFT JOIN usuarios u_produtor ON u_produtor.id = t.produtor_id
                LEFT JOIN usuarios u_afiliado ON u_afiliado.id = t.afiliado_id
                WHERE 1=1";

$params = [];

if (!empty($filtro_status)) {
    $sql_pedidos .= " AND status = :status";
    $params[':status'] = $filtro_status;
}

if (!empty($filtro_data_inicio)) {
    $sql_pedidos .= " AND DATE(created_at) >= :data_inicio";
    $params[':data_inicio'] = $filtro_data_inicio;
}

if (!empty($filtro_data_fim)) {
    $sql_pedidos .= " AND DATE(created_at) <= :data_fim";
    $params[':data_fim'] = $filtro_data_fim;
}

if (!empty($busca)) {
    $sql_pedidos .= " AND (nome LIKE :busca OR sobrenome LIKE :busca OR email LIKE :busca OR descricao LIKE :busca)";
    $params[':busca'] = '%' . $busca . '%';
}

$sql_pedidos .= " ORDER BY created_at DESC";

$stmt_pedidos = $pdo->prepare($sql_pedidos);
$stmt_pedidos->execute($params);
$pedidos = $stmt_pedidos->fetchAll(PDO::FETCH_ASSOC);

// Estatísticas rápidas
$sql_stats = "SELECT 
    COUNT(*) as total_pedidos,
    SUM(CASE WHEN status = 'Aprovado' THEN 1 ELSE 0 END) as aprovados,
    SUM(CASE WHEN status = 'Pendente' THEN 1 ELSE 0 END) as pendentes,
    SUM(CASE WHEN status = 'Aprovado' THEN valor ELSE 0 END) as total_aprovado
    FROM transacoes";

$stmt_stats = $pdo->query($sql_stats);
$stats = $stmt_stats->fetch(PDO::FETCH_ASSOC);
?>

<!-- Página incluída no dashboard/index.php - não precisa de tags HTML completas -->
<style>
        /* ==========================================================
           2. ESTILOS CSS (COM SUPORTE A DARK MODE)
           ========================================================== */
        :root {
            /* Cores Padrão (Light Mode) */
            --primary-color: #009846;
            --primary-light: #00A85A;
            --primary-dark: #007635;
            --success-color: #4CAF50;
            --warning-color: #FFC107;
            --danger-color: #F44336;
            --info-color: #2196F3;
            
            --text-primary: #212121;
            --text-secondary: #757575;
            --text-muted: #9E9E9E;
            
            --bg-light: #f4f4f4;
            --bg-white: var(--bg-card, #FFFFFF);
            
            --border-color: var(--border-color, #E0E0E0);
            --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
            --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.15);
            --border-radius: 8px;
            --transition: all 0.3s ease;
            --table-hover: rgba(0, 152, 70, 0.05);
        }

        /* --- DARK MODE ATIVADO --- */
        [data-theme="dark"] {
            --text-primary: #e0e0e0;
            --text-secondary: #94a3b8;
            --text-muted: #64748b;
            
            --bg-light: var(--bg-body, #020617); /* Fundo Geral Escuro */
            --bg-white: var(--bg-card, #0f172a); /* Fundo Cards Escuro - Herda customização */
            
            --border-color: var(--border-color, #1e293b);
            --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.5);
            --table-hover: rgba(255, 255, 255, 0.05);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Montserrat', sans-serif;
        }

        body {
            background-color: var(--bg-light);
            color: var(--text-primary);
            transition: var(--transition);
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
        }

        .page-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 24px;
        }

        .page-title {
            font-size: 24px;
            font-weight: 600;
            color: var(--text-primary);
        }

        /* Cards de estatísticas */
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 16px;
            margin-bottom: 24px;
        }

        .stat-card {
            background-color: var(--bg-white);
            border-radius: var(--border-radius);
            padding: 20px;
            box-shadow: var(--shadow-sm);
            border: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .stat-icon {
            width: 48px;
            height: 48px;
            border-radius: var(--border-radius);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
        }

        .stat-icon.total { background-color: rgba(33, 150, 243, 0.1); color: var(--info-color); }
        .stat-icon.aprovados { background-color: rgba(76, 175, 80, 0.1); color: var(--success-color); }
        .stat-icon.pendentes { background-color: rgba(255, 193, 7, 0.1); color: var(--warning-color); }
        .stat-icon.receita { background-color: rgba(0, 152, 70, 0.1); color: var(--primary-color); }

        .stat-info h3 {
            font-size: 24px;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 4px;
        }

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

        /* Filtros */
        .filters-container {
            background-color: var(--bg-white);
            border-radius: var(--border-radius);
            padding: 20px;
            box-shadow: var(--shadow-sm);
            border: 1px solid var(--border-color);
            margin-bottom: 24px;
        }

        .filters-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 16px;
            align-items: end;
        }

        .filter-group {
            display: flex;
            flex-direction: column;
        }

        .filter-label {
            font-size: 14px;
            color: var(--text-secondary);
            font-weight: 500;
            margin-bottom: 8px;
        }

        .filter-input {
            padding: 10px 12px;
            border: 1px solid var(--border-color);
            border-radius: var(--border-radius);
            font-size: 14px;
            color: var(--text-primary);
            background-color: var(--bg-white);
            transition: var(--transition);
        }
        
        /* Ajuste do fundo do input no dark mode */
        [data-theme="dark"] .filter-input { background-color: #1e293b; }
        [data-theme="dark"] .filter-input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1); }

        .filter-input:focus {
            outline: none;
            border-color: var(--primary-color);
            box-shadow: 0 0 0 3px rgba(0, 152, 70, 0.1);
        }

        .search-container { position: relative; }

        .search-icon {
            position: absolute;
            left: 12px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-muted);
        }

        .search-input { padding-left: 40px; }

        .filter-btn {
            padding: 10px 20px;
            background-color: var(--primary-color);
            color: white;
            border: none;
            border-radius: var(--border-radius);
            font-size: 14px;
            font-weight: 500;
            cursor: pointer;
            transition: var(--transition);
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .filter-btn:hover {
            background-color: var(--primary-dark);
            transform: translateY(-2px);
        }

        /* Tabela */
        .table-container {
            background-color: var(--bg-white);
            border-radius: var(--border-radius);
            box-shadow: var(--shadow-sm);
            overflow: hidden;
            border: 1px solid var(--border-color);
        }

        .table-responsive { overflow-x: auto; }

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

        table th {
            background-color: rgba(0, 152, 70, 0.05);
            color: var(--text-secondary);
            font-weight: 500;
            text-align: left;
            padding: 16px;
            font-size: 13px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            border-bottom: 1px solid var(--border-color);
        }
        
        [data-theme="dark"] table th { background-color: rgba(255, 255, 255, 0.05); }

        table td {
            padding: 16px;
            vertical-align: middle;
            border-bottom: 1px solid var(--border-color);
            font-size: 14px;
            color: var(--text-primary);
        }

        table tbody tr:hover { background-color: var(--table-hover); }

        table tbody tr:last-child td { border-bottom: none; }

        /* Cliente info */
        .client-info { display: flex; flex-direction: column; gap: 4px; }
        .client-name { font-weight: 500; color: var(--text-primary); }
        .client-email { font-size: 12px; color: var(--text-secondary); }

        /* Valor */
        .valor { font-weight: 600; color: var(--primary-color); font-size: 15px; }

        /* Data */
        .data { font-size: 13px; color: var(--text-secondary); white-space: nowrap; }

        /* Tipo de pagamento */
        .payment-type {
            display: inline-flex; align-items: center; gap: 6px;
            padding: 4px 8px; background-color: var(--bg-light);
            border-radius: var(--border-radius); font-size: 12px;
            color: var(--text-secondary);
        }

        /* Estado vazio */
        .empty-state { text-align: center; padding: 60px 20px; color: var(--text-secondary); }
        .empty-state i { font-size: 48px; color: var(--text-muted); margin-bottom: 16px; }
        .empty-state h3 { font-size: 18px; margin-bottom: 8px; color: var(--text-primary); }
        .empty-state p { font-size: 14px; margin-bottom: 24px; }

        /* Responsivo */
        @media (max-width: 768px) {
            .container { padding: 15px; }
            .page-header { flex-direction: column; align-items: flex-start; gap: 16px; }
            .stats-grid, .filters-grid { grid-template-columns: 1fr; }
            .table-responsive { overflow-x: auto; }
            
            table, thead, tbody, th, td, tr { display: block; width: 100%; }
            thead tr { display: none; }
            
            tbody tr {
                margin-bottom: 16px; border: 1px solid var(--border-color);
                border-radius: var(--border-radius); padding: 16px;
                background-color: var(--bg-white); box-shadow: var(--shadow-sm);
            }
            td {
                display: flex; justify-content: space-between; align-items: center;
                padding: 8px 0; border-bottom: 1px solid var(--border-color);
            }
            td:last-child { border-bottom: none; }
            td::before {
                content: attr(data-label); font-weight: 500;
                color: var(--text-secondary); font-size: 12px;
                text-transform: uppercase; letter-spacing: 0.5px;
            }
            .client-info, .status, .valor, .data, .payment-type { margin-left: auto; text-align: right; }
        }

        .pagination-info {
            text-align: center; padding: 16px; color: var(--text-secondary);
            font-size: 14px; background-color: var(--bg-light);
            border-top: 1px solid var(--border-color);
        }
    </style>
</head>
<body>

<div class="container">
    <div class="page-header">
        <h1 class="page-title"><i class="fas fa-shopping-cart"></i> Pedidos</h1>
    </div>

    <div class="stats-grid">
        <div class="stat-card">
            <div class="stat-icon total"><i class="fas fa-list"></i></div>
            <div class="stat-info">
                <h3><?= number_format($stats['total_pedidos']); ?></h3>
                <p>Total de Pedidos</p>
            </div>
        </div>
        <div class="stat-card">
            <div class="stat-icon aprovados"><i class="fas fa-check-circle"></i></div>
            <div class="stat-info">
                <h3><?= number_format($stats['aprovados']); ?></h3>
                <p>Pedidos Aprovados</p>
            </div>
        </div>
        <div class="stat-card">
            <div class="stat-icon pendentes"><i class="fas fa-clock"></i></div>
            <div class="stat-info">
                <h3><?= number_format($stats['pendentes']); ?></h3>
                <p>Pedidos Pendentes</p>
            </div>
        </div>
        <div class="stat-card">
            <div class="stat-icon receita"><i class="fas fa-dollar-sign"></i></div>
            <div class="stat-info">
                <h3>R$ <?= number_format($stats['total_aprovado'], 2, ',', '.'); ?></h3>
                <p>Receita Aprovada</p>
            </div>
        </div>
    </div>

    <div class="filters-container">
        <form method="GET" action="index.php">
            <input type="hidden" name="page" value="pedidos">
            <div class="filters-grid">
                <div class="filter-group">
                    <label class="filter-label"><i class="fas fa-search"></i> Buscar</label>
                    <div class="search-container">
                        <i class="fas fa-search search-icon"></i>
                        <input type="text" name="busca" class="filter-input search-input" placeholder="Nome, email ou produto..." value="<?= htmlspecialchars($busca); ?>">
                    </div>
                </div>
                <div class="filter-group">
                    <label class="filter-label"><i class="fas fa-flag"></i> Status</label>
                    <select name="status" class="filter-input">
                        <option value="">Todos os status</option>
                        <option value="Aprovado" <?= $filtro_status === 'Aprovado' ? 'selected' : ''; ?>>Aprovado</option>
                        <option value="Pendente" <?= $filtro_status === 'Pendente' ? 'selected' : ''; ?>>Pendente</option>
                        <option value="Reprovado" <?= $filtro_status === 'Reprovado' ? 'selected' : ''; ?>>Reprovado</option>
                    </select>
                </div>
                <div class="filter-group">
                    <label class="filter-label"><i class="fas fa-calendar"></i> Data Início</label>
                    <input type="date" name="data_inicio" class="filter-input" value="<?= htmlspecialchars($filtro_data_inicio); ?>">
                </div>
                <div class="filter-group">
                    <label class="filter-label"><i class="fas fa-calendar"></i> Data Fim</label>
                    <input type="date" name="data_fim" class="filter-input" value="<?= htmlspecialchars($filtro_data_fim); ?>">
                </div>
                <div class="filter-group">
                    <button type="submit" class="filter-btn"><i class="fas fa-filter"></i> Filtrar</button>
                </div>
            </div>
        </form>
    </div>

    <div class="table-container">
        <?php if (count($pedidos) > 0): ?>
            <div class="table-responsive">
                <table>
                    <thead>
                        <tr>
                            <th>Data</th>
                            <th>Produto</th>
                            <th>Cliente</th>
                            <th>Produtor</th>
                            <th>Afiliado</th>
                            <th>Status</th>
                            <th>Valor</th>
                            <th>Pagamento</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($pedidos as $pedido): ?>
                        <tr>
                            <td data-label="Data">
                                <span class="data"><?= $pedido['created_at'] ? date('d/m/Y H:i', strtotime($pedido['created_at'])) : 'N/A'; ?></span>
                            </td>
                            <td data-label="Produto">
                                <strong><?= htmlspecialchars($pedido['descricao'] ?? 'N/A'); ?></strong>
                            </td>
                            <td data-label="Cliente">
                                <div class="client-info">
                                    <span class="client-name"><?= htmlspecialchars($pedido['nome'] . ' ' . $pedido['sobrenome']); ?></span>
                                    <span class="client-email"><?= htmlspecialchars($pedido['email']); ?></span>
                                </div>
                            </td>
                            <td data-label="Produtor">
                                <?php if (!empty($pedido['produtor_nome'])): ?>
                                    <span style="color: var(--primary-color); font-weight: 600;">
                                        <i class="fas fa-user"></i> <?= htmlspecialchars($pedido['produtor_nome']); ?>
                                    </span>
                                <?php else: ?>
                                    <span style="color: var(--text-muted);">N/A</span>
                                <?php endif; ?>
                            </td>
                            <td data-label="Afiliado">
                                <?php if (!empty($pedido['afiliado_nome'])): ?>
                                    <span style="color: #667eea; font-weight: 600;">
                                        <i class="fas fa-handshake"></i> <?= htmlspecialchars($pedido['afiliado_nome']); ?>
                                    </span>
                                <?php else: ?>
                                    <span style="color: var(--text-muted);">-</span>
                                <?php endif; ?>
                            </td>
                            <td data-label="Status">
                                <span class="status <?php 
                                    $status = strtolower($pedido['status']);
                                    if ($status === 'aprovado') echo 'aprovado';
                                    elseif ($status === 'pendente') echo 'pendente';
                                    else echo 'reprovado';
                                ?>">
                                    <?php 
                                    if ($status === 'aprovado') echo '<i class="fas fa-check-circle"></i>';
                                    elseif ($status === 'pendente') echo '<i class="fas fa-clock"></i>';
                                    else echo '<i class="fas fa-times-circle"></i>';
                                    ?>
                                    <?= ucfirst(htmlspecialchars($pedido['status'])); ?>
                                </span>
                            </td>
                            <td data-label="Valor">
                                <span class="valor">R$ <?= number_format($pedido['valor'], 2, ',', '.'); ?></span>
                            </td>
                            <td data-label="Pagamento">
                                <span class="payment-type">
                                    <?php 
                                    $tipo = $pedido['tipo_pagamento'] ?? 'Não informado';
                                    if (strtolower($tipo) === 'pix') echo '<i class="fas fa-qrcode"></i>';
                                    elseif (strpos(strtolower($tipo), 'credit') !== false || strpos(strtolower($tipo), 'cartão') !== false) echo '<i class="fas fa-credit-card"></i>';
                                    else echo '<i class="fas fa-money-bill"></i>';
                                    ?>
                                    <?= htmlspecialchars($tipo); ?>
                                </span>
                            </td>
                        </tr>
                        <?php endforeach; ?>
                    </tbody>
                </table>
            </div>
            <div class="pagination-info">
                Exibindo <?= count($pedidos); ?> pedido(s)
                <?php if (!empty($busca) || !empty($filtro_status) || !empty($filtro_data_inicio) || !empty($filtro_data_fim)): ?>
                    com filtros aplicados
                <?php endif; ?>
            </div>
        <?php else: ?>
            <div class="empty-state">
                <i class="fas fa-shopping-cart"></i>
                <h3>Nenhum pedido encontrado</h3>
                <p>
                    <?php if (!empty($busca) || !empty($filtro_status) || !empty($filtro_data_inicio) || !empty($filtro_data_fim)): ?>
                        Tente ajustar os filtros para ver mais resultados.
                    <?php else: ?>
                        Ainda não há pedidos registrados no sistema.
                    <?php endif; ?>
                </p>
            </div>
        <?php endif; ?>
    </div>
</div>

<script>
    (function() {
        const html = document.documentElement;
        // Tenta pegar o botão do index.php
        const mainThemeBtn = window.parent.document.getElementById('themeBtn') || document.getElementById('themeBtn');

        function syncTheme() {
            const savedTheme = localStorage.getItem('theme');
            if (savedTheme === 'dark') {
                html.setAttribute('data-theme', 'dark');
            } else {
                html.removeAttribute('data-theme');
            }
        }

        syncTheme();

        if(mainThemeBtn) {
            mainThemeBtn.addEventListener('click', function() {
                setTimeout(syncTheme, 50);
            });
        }
    })();
</script>