<?php
/**
 * Sala de Aula - Player de Curso
 * Interface estilo Kiwify/Netflix para assistir aulas
 * 
 * @version 1.0
 * @author Checkout Pro 2025
 */

// Autenticação
require_once __DIR__ . '/../../backend/auth_helper.php';
requer_usuario(); // Apenas usuários comuns (não admin)

// Conexão com banco
require_once __DIR__ . '/../../config/config_db.php';

// Parâmetros da URL
$produto_id = isset($_GET['produto_id']) ? intval($_GET['produto_id']) : 0;
$aula_id = isset($_GET['aula_id']) ? intval($_GET['aula_id']) : 0;

if ($produto_id <= 0) {
    header('Location: /dashboard/usuario.php?page=meus_produtos');
    exit;
}

$usuario_logado = usuario_logado();
$usuario_id = $usuario_logado['id'];

// ============================================================
// VALIDAR MATRÍCULA
// ============================================================
try {
    $sql_matricula = "SELECT * FROM matriculas 
                      WHERE usuario_id = :usuario_id 
                      AND produto_id = :produto_id 
                      AND status = 'ativo'
                      AND (data_expiracao IS NULL OR data_expiracao >= NOW())";
    $stmt_matricula = $pdo->prepare($sql_matricula);
    $stmt_matricula->execute([
        ':usuario_id' => $usuario_id,
        ':produto_id' => $produto_id
    ]);
    $matricula = $stmt_matricula->fetch(PDO::FETCH_ASSOC);
    
    if (!$matricula) {
        // Sem matrícula ativa - redirecionar
        header('Location: /dashboard/usuario.php?page=meus_produtos');
        exit;
    }
} catch (PDOException $e) {
    error_log("Erro ao validar matrícula: " . $e->getMessage());
    header('Location: /dashboard/usuario.php?page=meus_produtos');
    exit;
}

// ============================================================
// BUSCAR DADOS DO PRODUTO
// ============================================================
try {
    $sql_produto = "SELECT id, nome, descricao FROM produtos WHERE id = :produto_id";
    $stmt_produto = $pdo->prepare($sql_produto);
    $stmt_produto->execute([':produto_id' => $produto_id]);
    $produto = $stmt_produto->fetch(PDO::FETCH_ASSOC);
    
    if (!$produto) {
        header('Location: /dashboard/usuario.php?page=meus_produtos');
        exit;
    }
} catch (PDOException $e) {
    error_log("Erro ao buscar produto: " . $e->getMessage());
    header('Location: /dashboard/usuario.php?page=meus_produtos');
    exit;
}

// ============================================================
// BUSCAR MÓDULOS E AULAS (COM ORDENAÇÃO)
// ============================================================
try {
    $sql_modulos = "SELECT * FROM modulos 
                    WHERE produto_id = :produto_id 
                    AND status = 'ativo'
                    ORDER BY ordem ASC, id ASC";
    $stmt_modulos = $pdo->prepare($sql_modulos);
    $stmt_modulos->execute([':produto_id' => $produto_id]);
    $modulos = $stmt_modulos->fetchAll(PDO::FETCH_ASSOC);
    
    // Buscar aulas para cada módulo
    $modulos_com_aulas = [];
    foreach ($modulos as $modulo) {
        $sql_aulas = "SELECT * FROM aulas 
                      WHERE modulo_id = :modulo_id 
                      ORDER BY ordem ASC, id ASC";
        $stmt_aulas = $pdo->prepare($sql_aulas);
        $stmt_aulas->execute([':modulo_id' => $modulo['id']]);
        $aulas = $stmt_aulas->fetchAll(PDO::FETCH_ASSOC);
        
        $modulo['aulas'] = $aulas;
        $modulos_com_aulas[] = $modulo;
    }
} catch (PDOException $e) {
    error_log("Erro ao buscar módulos e aulas: " . $e->getMessage());
    $modulos_com_aulas = [];
}

// ============================================================
// CALCULAR PROGRESSO DO ALUNO
// ============================================================
$total_aulas = 0;
$aulas_concluidas = 0;
$aulas_concluidas_ids = [];

try {
    // Contar total de aulas
    foreach ($modulos_com_aulas as $modulo) {
        $total_aulas += count($modulo['aulas']);
    }
    
    // Buscar aulas concluídas
    if ($total_aulas > 0) {
        $aulas_ids = [];
        foreach ($modulos_com_aulas as $modulo) {
            foreach ($modulo['aulas'] as $aula) {
                $aulas_ids[] = $aula['id'];
            }
        }
        
        if (!empty($aulas_ids)) {
            $placeholders = implode(',', array_fill(0, count($aulas_ids), '?'));
            $sql_progresso = "SELECT aula_id FROM progresso_aulas 
                             WHERE usuario_id = ? 
                             AND aula_id IN ($placeholders) 
                             AND concluida = 1";
            $stmt_progresso = $pdo->prepare($sql_progresso);
            $stmt_progresso->execute(array_merge([$usuario_id], $aulas_ids));
            $progresso = $stmt_progresso->fetchAll(PDO::FETCH_ASSOC);
            
            $aulas_concluidas = count($progresso);
            $aulas_concluidas_ids = array_column($progresso, 'aula_id');
        }
    }
} catch (PDOException $e) {
    error_log("Erro ao calcular progresso: " . $e->getMessage());
}

$percentual_progresso = $total_aulas > 0 ? round(($aulas_concluidas / $total_aulas) * 100) : 0;

// ============================================================
// DEFINIR AULA ATUAL
// ============================================================
$aula_atual = null;
$modulo_atual = null;
$aula_anterior = null;
$aula_proxima = null;

// Se aula_id foi fornecido, buscar essa aula
if ($aula_id > 0) {
    foreach ($modulos_com_aulas as $modulo) {
        foreach ($modulo['aulas'] as $index => $aula) {
            if ($aula['id'] == $aula_id) {
                $aula_atual = $aula;
                $modulo_atual = $modulo;
                
                // Buscar aula anterior
                if ($index > 0) {
                    $aula_anterior = $modulo['aulas'][$index - 1];
                } else {
                    // Procurar no módulo anterior
                    $modulo_index = array_search($modulo, $modulos_com_aulas);
                    if ($modulo_index > 0) {
                        $modulo_anterior = $modulos_com_aulas[$modulo_index - 1];
                        if (!empty($modulo_anterior['aulas'])) {
                            $aula_anterior = end($modulo_anterior['aulas']);
                        }
                    }
                }
                
                // Buscar próxima aula
                if ($index < count($modulo['aulas']) - 1) {
                    $aula_proxima = $modulo['aulas'][$index + 1];
                } else {
                    // Procurar no próximo módulo
                    $modulo_index = array_search($modulo, $modulos_com_aulas);
                    if ($modulo_index < count($modulos_com_aulas) - 1) {
                        $modulo_proximo = $modulos_com_aulas[$modulo_index + 1];
                        if (!empty($modulo_proximo['aulas'])) {
                            $aula_proxima = $modulo_proximo['aulas'][0];
                        }
                    }
                }
                
                break 2;
            }
        }
    }
}

// Se não encontrou aula específica, usar a primeira aula
if (!$aula_atual && !empty($modulos_com_aulas)) {
    foreach ($modulos_com_aulas as $modulo) {
        if (!empty($modulo['aulas'])) {
            $aula_atual = $modulo['aulas'][0];
            $modulo_atual = $modulo;
            
            // Buscar próxima aula
            if (count($modulo['aulas']) > 1) {
                $aula_proxima = $modulo['aulas'][1];
            } else {
                // Procurar no próximo módulo
                $modulo_index = array_search($modulo, $modulos_com_aulas);
                if ($modulo_index < count($modulos_com_aulas) - 1) {
                    $modulo_proximo = $modulos_com_aulas[$modulo_index + 1];
                    if (!empty($modulo_proximo['aulas'])) {
                        $aula_proxima = $modulo_proximo['aulas'][0];
                    }
                }
            }
            break;
        }
    }
}

// Verificar se aula atual está concluída
$aula_atual_concluida = $aula_atual && in_array($aula_atual['id'], $aulas_concluidas_ids);
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <title><?= htmlspecialchars($aula_atual ? $aula_atual['titulo'] : 'Sala de Aula') ?> - <?= htmlspecialchars($produto['nome']) ?></title>
    
    <!-- Font Awesome -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    
    <!-- Google Fonts -->
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
    
    <!-- CSS -->
    <link rel="stylesheet" href="/dashboard/css/curso_player.css">
</head>
<body>
    <!-- Barra de Progresso Global -->
    <div class="progress-bar-container">
        <div class="progress-bar-header">
            <span class="progress-label">Progresso do Curso</span>
            <span class="progress-percentage"><?= $percentual_progresso ?>%</span>
        </div>
        <div class="progress-bar">
            <div class="progress-bar-fill" style="width: <?= $percentual_progresso ?>%"></div>
        </div>
        <div class="progress-stats">
            <span><?= $aulas_concluidas ?> de <?= $total_aulas ?> aulas concluídas</span>
        </div>
    </div>

    <div class="course-container">
        <!-- Sidebar de Navegação -->
        <aside class="course-sidebar" id="courseSidebar">
            <div class="sidebar-header">
                <h2><?= htmlspecialchars($produto['nome']) ?></h2>
                <button class="sidebar-toggle" id="sidebarToggle" aria-label="Fechar menu">
                    <i class="fas fa-times"></i>
                </button>
            </div>
            
            <nav class="modules-nav">
                <?php if (empty($modulos_com_aulas)): ?>
                    <p class="no-content">Nenhum módulo disponível.</p>
                <?php else: ?>
                    <?php foreach ($modulos_com_aulas as $modulo): ?>
                        <div class="module-item">
                            <button class="module-header" data-module-id="<?= $modulo['id'] ?>">
                                <i class="fas fa-chevron-down module-icon"></i>
                                <span><?= htmlspecialchars($modulo['nome']) ?></span>
                            </button>
                            <div class="module-lessons">
                                <?php if (!empty($modulo['aulas'])): ?>
                                    <?php foreach ($modulo['aulas'] as $aula): ?>
                                        <?php 
                                        $is_concluida = in_array($aula['id'], $aulas_concluidas_ids);
                                        $is_atual = $aula_atual && $aula['id'] == $aula_atual['id'];
                                        ?>
                                        <a href="?produto_id=<?= $produto_id ?>&aula_id=<?= $aula['id'] ?>" 
                                           class="lesson-item <?= $is_atual ? 'current' : '' ?> <?= $is_concluida ? 'completed' : '' ?>"
                                           data-aula-id="<?= $aula['id'] ?>">
                                            <i class="fas fa-<?= $is_concluida ? 'check-circle' : 'circle' ?> lesson-status"></i>
                                            <span class="lesson-title"><?= htmlspecialchars($aula['titulo']) ?></span>
                                            <?php if ($aula['duracao']): ?>
                                                <span class="lesson-duration"><?= htmlspecialchars($aula['duracao']) ?></span>
                                            <?php endif; ?>
                                        </a>
                                    <?php endforeach; ?>
                                <?php else: ?>
                                    <p class="no-lessons">Nenhuma aula disponível neste módulo.</p>
                                <?php endif; ?>
                            </div>
                        </div>
                    <?php endforeach; ?>
                <?php endif; ?>
            </nav>
        </aside>

        <!-- Área Principal (Player) -->
        <main class="course-main">
            <?php if ($aula_atual): ?>
                <!-- Header da Aula -->
                <div class="lesson-header">
                    <div class="breadcrumbs">
                        <a href="/dashboard/usuario.php?page=meus_produtos">Meus Cursos</a>
                        <i class="fas fa-chevron-right"></i>
                        <span><?= htmlspecialchars($produto['nome']) ?></span>
                        <i class="fas fa-chevron-right"></i>
                        <span><?= htmlspecialchars($modulo_atual ? $modulo_atual['nome'] : '') ?></span>
                        <i class="fas fa-chevron-right"></i>
                        <span class="current-breadcrumb"><?= htmlspecialchars($aula_atual['titulo']) ?></span>
                    </div>
                    <h1 class="lesson-title-main"><?= htmlspecialchars($aula_atual['titulo']) ?></h1>
                </div>

                <!-- Container de Vídeo -->
                <div class="video-container">
                    <?php if ($aula_atual['video_url']): ?>
                        <div class="video-wrapper">
                            <iframe 
                                src="<?= htmlspecialchars($aula_atual['video_url']) ?>" 
                                frameborder="0" 
                                allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
                                allowfullscreen
                                class="video-iframe">
                            </iframe>
                        </div>
                    <?php else: ?>
                        <div class="video-placeholder">
                            <i class="fas fa-video-slash"></i>
                            <p>Vídeo não disponível</p>
                        </div>
                    <?php endif; ?>
                </div>

                <!-- Barra de Ações -->
                <div class="lesson-actions">
                    <button class="btn-nav btn-prev <?= !$aula_anterior ? 'disabled' : '' ?>" 
                            <?= $aula_anterior ? 'onclick="window.location.href=\'?produto_id=' . $produto_id . '&aula_id=' . $aula_anterior['id'] . '\'"' : '' ?>
                            <?= !$aula_anterior ? 'disabled' : '' ?>>
                        <i class="fas fa-arrow-left"></i>
                        <span>Aula Anterior</span>
                    </button>
                    
                    <button class="btn-complete <?= $aula_atual_concluida ? 'completed' : '' ?>" 
                            id="btnMarkComplete"
                            data-aula-id="<?= $aula_atual['id'] ?>"
                            data-produto-id="<?= $produto_id ?>">
                        <i class="fas fa-<?= $aula_atual_concluida ? 'check' : 'check-circle' ?>"></i>
                        <span><?= $aula_atual_concluida ? 'Concluída' : 'Marcar como Concluída' ?></span>
                    </button>
                    
                    <button class="btn-nav btn-next <?= !$aula_proxima ? 'disabled' : '' ?>" 
                            <?= $aula_proxima ? 'onclick="window.location.href=\'?produto_id=' . $produto_id . '&aula_id=' . $aula_proxima['id'] . '\'"' : '' ?>
                            <?= !$aula_proxima ? 'disabled' : '' ?>>
                        <span>Próxima Aula</span>
                        <i class="fas fa-arrow-right"></i>
                    </button>
                </div>

                <!-- Abas de Conteúdo -->
                <div class="content-tabs">
                    <div class="tab-buttons">
                        <button class="tab-btn active" data-tab="description">
                            <i class="fas fa-file-alt"></i>
                            <span>Descrição</span>
                        </button>
                        <button class="tab-btn" data-tab="materials">
                            <i class="fas fa-download"></i>
                            <span>Materiais</span>
                        </button>
                    </div>
                    
                    <div class="tab-content active" id="tab-description">
                        <div class="tab-content-inner">
                            <?php if ($aula_atual['descricao']): ?>
                                <p><?= nl2br(htmlspecialchars($aula_atual['descricao'])) ?></p>
                            <?php else: ?>
                                <p class="no-content-text">Nenhuma descrição disponível para esta aula.</p>
                            <?php endif; ?>
                        </div>
                    </div>
                    
                    <div class="tab-content" id="tab-materials">
                        <div class="tab-content-inner">
                            <?php 
                            $materiais = null;
                            if ($aula_atual['materiais_complementares']) {
                                $materiais = json_decode($aula_atual['materiais_complementares'], true);
                            }
                            ?>
                            <?php if ($materiais && is_array($materiais) && !empty($materiais)): ?>
                                <ul class="materials-list">
                                    <?php foreach ($materiais as $material): ?>
                                        <li class="material-item">
                                            <i class="fas fa-file-pdf"></i>
                                            <a href="<?= htmlspecialchars($material['url'] ?? '#') ?>" 
                                               target="_blank" 
                                               rel="noopener noreferrer">
                                                <?= htmlspecialchars($material['nome'] ?? 'Material') ?>
                                            </a>
                                        </li>
                                    <?php endforeach; ?>
                                </ul>
                            <?php else: ?>
                                <p class="no-content-text">Nenhum material complementar disponível.</p>
                            <?php endif; ?>
                        </div>
                    </div>
                </div>
            <?php else: ?>
                <div class="no-lesson-selected">
                    <i class="fas fa-graduation-cap"></i>
                    <h2>Selecione uma aula para começar</h2>
                    <p>Escolha uma aula no menu lateral para iniciar o curso.</p>
                </div>
            <?php endif; ?>
        </main>
    </div>

    <!-- Botão Mobile para Abrir Sidebar -->
    <button class="mobile-sidebar-toggle" id="mobileSidebarToggle" aria-label="Abrir menu">
        <i class="fas fa-bars"></i>
    </button>

    <!-- JavaScript -->
    <script src="/dashboard/js/curso_player.js"></script>
</body>
</html>





