<?php
/**
 * Editor de Curso - Gerenciamento de Módulos e Aulas
 * Permite criar, editar e organizar módulos e aulas de um curso
 */

require_once __DIR__ . '/../../backend/auth_helper.php';
requer_login();

require_once __DIR__ . '/../../config/config_db.php';

// Incluir helper de upload
$upload_helper_path = __DIR__ . '/../../backend/upload_helper.php';
if (file_exists($upload_helper_path)) {
    require_once $upload_helper_path;
}

$produto_id = isset($_GET['produto_id']) ? intval($_GET['produto_id']) : 0;

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

$usuario_logado = usuario_logado();
$usuario_id = $usuario_logado['id'];
$is_admin = ($usuario_logado['tipo'] ?? '') === 'admin';

// Processar ações (POST)
$mensagem = '';
$tipo_mensagem = '';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $acao = $_POST['acao'] ?? '';
    
    // CRIAR MÓDULO
    if ($acao === 'criar_modulo') {
        $nome_modulo = trim($_POST['nome_modulo'] ?? '');
        $ordem_modulo = intval($_POST['ordem_modulo'] ?? 0);
        
        if (empty($nome_modulo)) {
            $mensagem = 'O nome do módulo é obrigatório.';
            $tipo_mensagem = 'erro';
        } else {
            try {
                // Calcular ordem automática se não informada
                if ($ordem_modulo <= 0) {
                    $stmt_count = $pdo->prepare("SELECT MAX(ordem) as max_ordem FROM modulos WHERE produto_id = :produto_id");
                    $stmt_count->execute([':produto_id' => $produto_id]);
                    $result = $stmt_count->fetch(PDO::FETCH_ASSOC);
                    $ordem_modulo = ($result['max_ordem'] ?? 0) + 1;
                }
                
                // Processar upload de imagem (se houver)
                $imagem_url = null;
                if (isset($_FILES['imagem_modulo']) && $_FILES['imagem_modulo']['error'] === UPLOAD_ERR_OK) {
                    try {
                        $imagem_url = upload_imagem($_FILES['imagem_modulo'], 'modulos');
                    } catch (Exception $e) {
                        $mensagem = 'Erro no upload da imagem: ' . $e->getMessage();
                        $tipo_mensagem = 'erro';
                        $imagem_url = null;
                    }
                }
                
                if ($tipo_mensagem !== 'erro') {
                    $stmt = $pdo->prepare("
                        INSERT INTO modulos (produto_id, nome, ordem, status, imagem) 
                        VALUES (:produto_id, :nome, :ordem, 'ativo', :imagem)
                    ");
                    $stmt->execute([
                        ':produto_id' => $produto_id,
                        ':nome' => $nome_modulo,
                        ':ordem' => $ordem_modulo,
                        ':imagem' => $imagem_url
                    ]);
                    
                    $mensagem = 'Módulo criado com sucesso!';
                    $tipo_mensagem = 'sucesso';
                }
            } catch (PDOException $e) {
                error_log("Erro ao criar módulo: " . $e->getMessage());
                $mensagem = 'Erro ao criar módulo. Tente novamente.';
                $tipo_mensagem = 'erro';
            }
        }
    }
    
    // EDITAR MÓDULO
    if ($acao === 'editar_modulo') {
        $modulo_id = intval($_POST['modulo_id'] ?? 0);
        $nome_modulo = trim($_POST['nome_modulo'] ?? '');
        $ordem_modulo = intval($_POST['ordem_modulo'] ?? 0);
        $imagem_atual = trim($_POST['imagem_atual'] ?? '');
        
        if (empty($nome_modulo)) {
            $mensagem = 'O nome do módulo é obrigatório.';
            $tipo_mensagem = 'erro';
        } elseif ($modulo_id <= 0) {
            $mensagem = 'Módulo inválido.';
            $tipo_mensagem = 'erro';
        } else {
            try {
                // Processar upload de nova imagem (se houver)
                $imagem_url = $imagem_atual; // Manter imagem atual por padrão
                if (isset($_FILES['imagem_modulo']) && $_FILES['imagem_modulo']['error'] === UPLOAD_ERR_OK) {
                    try {
                        $imagem_url = upload_imagem($_FILES['imagem_modulo'], 'modulos');
                    } catch (Exception $e) {
                        $mensagem = 'Erro no upload da imagem: ' . $e->getMessage();
                        $tipo_mensagem = 'erro';
                    }
                }
                
                if ($tipo_mensagem !== 'erro') {
                    $stmt = $pdo->prepare("
                        UPDATE modulos 
                        SET nome = :nome, ordem = :ordem, imagem = :imagem 
                        WHERE id = :modulo_id AND produto_id = :produto_id
                    ");
                    $stmt->execute([
                        ':nome' => $nome_modulo,
                        ':ordem' => $ordem_modulo,
                        ':imagem' => $imagem_url ?: null,
                        ':modulo_id' => $modulo_id,
                        ':produto_id' => $produto_id
                    ]);
                    
                    $mensagem = 'Módulo atualizado com sucesso!';
                    $tipo_mensagem = 'sucesso';
                }
            } catch (PDOException $e) {
                error_log("Erro ao editar módulo: " . $e->getMessage());
                $mensagem = 'Erro ao atualizar módulo. Tente novamente.';
                $tipo_mensagem = 'erro';
            }
        }
    }
    
    // EXCLUIR MÓDULO
    if ($acao === 'excluir_modulo') {
        $modulo_id = intval($_POST['modulo_id'] ?? 0);
        
        if ($modulo_id <= 0) {
            $mensagem = 'Módulo inválido.';
            $tipo_mensagem = 'erro';
        } else {
            try {
                // CASCADE DELETE garante que as aulas sejam excluídas automaticamente
                // Mas vamos fazer explicitamente para ter controle
                $stmt = $pdo->prepare("DELETE FROM aulas WHERE modulo_id = :modulo_id");
                $stmt->execute([':modulo_id' => $modulo_id]);
                
                $stmt = $pdo->prepare("DELETE FROM modulos WHERE id = :modulo_id AND produto_id = :produto_id");
                $stmt->execute([':modulo_id' => $modulo_id, ':produto_id' => $produto_id]);
                
                $mensagem = 'Módulo excluído com sucesso!';
                $tipo_mensagem = 'sucesso';
            } catch (PDOException $e) {
                error_log("Erro ao excluir módulo: " . $e->getMessage());
                $mensagem = 'Erro ao excluir módulo. Tente novamente.';
                $tipo_mensagem = 'erro';
            }
        }
    }
    
    // CRIAR AULA
    if ($acao === 'criar_aula') {
        $modulo_id = intval($_POST['modulo_id'] ?? 0);
        $titulo_aula = trim($_POST['titulo_aula'] ?? '');
        $descricao_aula = trim($_POST['descricao_aula'] ?? '');
        $video_url = trim($_POST['video_url'] ?? '');
        $duracao = trim($_POST['duracao'] ?? '');
        $ordem_aula = intval($_POST['ordem_aula'] ?? 0);
        $materiais_complementares = $_POST['materiais_complementares'] ?? '';
        
        if (empty($titulo_aula)) {
            $mensagem = 'O título da aula é obrigatório.';
            $tipo_mensagem = 'erro';
        } elseif ($modulo_id <= 0) {
            $mensagem = 'Módulo inválido.';
            $tipo_mensagem = 'erro';
        } else {
            try {
                // Calcular ordem automática se não informada
                if ($ordem_aula <= 0) {
                    $stmt_count = $pdo->prepare("SELECT MAX(ordem) as max_ordem FROM aulas WHERE modulo_id = :modulo_id");
                    $stmt_count->execute([':modulo_id' => $modulo_id]);
                    $result = $stmt_count->fetch(PDO::FETCH_ASSOC);
                    $ordem_aula = ($result['max_ordem'] ?? 0) + 1;
                }
                
                // Processar materiais complementares (textarea → JSON)
                $materiais_json = null;
                if (!empty($materiais_complementares)) {
                    $linhas = explode("\n", $materiais_complementares);
                    $materiais_filtrados = array_filter(array_map('trim', $linhas));
                    if (!empty($materiais_filtrados)) {
                        $materiais_json = json_encode(array_values($materiais_filtrados));
                    }
                }
                
                $stmt = $pdo->prepare("
                    INSERT INTO aulas (modulo_id, titulo, descricao, video_url, duracao, ordem, materiais_complementares) 
                    VALUES (:modulo_id, :titulo, :descricao, :video_url, :duracao, :ordem, :materiais_complementares)
                ");
                $stmt->execute([
                    ':modulo_id' => $modulo_id,
                    ':titulo' => $titulo_aula,
                    ':descricao' => $descricao_aula ?: null,
                    ':video_url' => $video_url ?: null,
                    ':duracao' => $duracao ?: null,
                    ':ordem' => $ordem_aula,
                    ':materiais_complementares' => $materiais_json
                ]);
                
                $mensagem = 'Aula criada com sucesso!';
                $tipo_mensagem = 'sucesso';
            } catch (PDOException $e) {
                error_log("Erro ao criar aula: " . $e->getMessage());
                $mensagem = 'Erro ao criar aula. Tente novamente.';
                $tipo_mensagem = 'erro';
            }
        }
    }
    
    // EDITAR AULA
    if ($acao === 'editar_aula') {
        $aula_id = intval($_POST['aula_id'] ?? 0);
        $modulo_id = intval($_POST['modulo_id'] ?? 0);
        $titulo_aula = trim($_POST['titulo_aula'] ?? '');
        $descricao_aula = trim($_POST['descricao_aula'] ?? '');
        $video_url = trim($_POST['video_url'] ?? '');
        $duracao = trim($_POST['duracao'] ?? '');
        $ordem_aula = intval($_POST['ordem_aula'] ?? 0);
        $materiais_complementares = $_POST['materiais_complementares'] ?? '';
        
        if (empty($titulo_aula)) {
            $mensagem = 'O título da aula é obrigatório.';
            $tipo_mensagem = 'erro';
        } elseif ($aula_id <= 0) {
            $mensagem = 'Aula inválida.';
            $tipo_mensagem = 'erro';
        } else {
            try {
                // Processar materiais complementares (textarea → JSON)
                $materiais_json = null;
                if (!empty($materiais_complementares)) {
                    $linhas = explode("\n", $materiais_complementares);
                    $materiais_filtrados = array_filter(array_map('trim', $linhas));
                    if (!empty($materiais_filtrados)) {
                        $materiais_json = json_encode(array_values($materiais_filtrados));
                    }
                }
                
                $stmt = $pdo->prepare("
                    UPDATE aulas 
                    SET titulo = :titulo, descricao = :descricao, video_url = :video_url, 
                        duracao = :duracao, ordem = :ordem, materiais_complementares = :materiais_complementares 
                    WHERE id = :aula_id AND modulo_id = :modulo_id
                ");
                $stmt->execute([
                    ':titulo' => $titulo_aula,
                    ':descricao' => $descricao_aula ?: null,
                    ':video_url' => $video_url ?: null,
                    ':duracao' => $duracao ?: null,
                    ':ordem' => $ordem_aula,
                    ':materiais_complementares' => $materiais_json,
                    ':aula_id' => $aula_id,
                    ':modulo_id' => $modulo_id
                ]);
                
                $mensagem = 'Aula atualizada com sucesso!';
                $tipo_mensagem = 'sucesso';
            } catch (PDOException $e) {
                error_log("Erro ao editar aula: " . $e->getMessage());
                $mensagem = 'Erro ao atualizar aula. Tente novamente.';
                $tipo_mensagem = 'erro';
            }
        }
    }
    
    // EXCLUIR AULA
    if ($acao === 'excluir_aula') {
        $aula_id = intval($_POST['aula_id'] ?? 0);
        
        if ($aula_id <= 0) {
            $mensagem = 'Aula inválida.';
            $tipo_mensagem = 'erro';
        } else {
            try {
                $stmt = $pdo->prepare("DELETE FROM aulas WHERE id = :aula_id");
                $stmt->execute([':aula_id' => $aula_id]);
                
                $mensagem = 'Aula excluída com sucesso!';
                $tipo_mensagem = 'sucesso';
            } catch (PDOException $e) {
                error_log("Erro ao excluir aula: " . $e->getMessage());
                $mensagem = 'Erro ao excluir aula. Tente novamente.';
                $tipo_mensagem = 'erro';
            }
        }
    }
}

// Buscar dados do produto
try {
    $stmt = $pdo->prepare("SELECT id, nome, tipo_entrega, usuario_id FROM produtos WHERE id = :id LIMIT 1");
    $stmt->execute([':id' => $produto_id]);
    $produto = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$produto) {
        header('Location: /dashboard/usuario.php?page=meus_produtos');
        exit;
    }
    
    // Verificar se é área de membros
    if (($produto['tipo_entrega'] ?? 'link') != 'area_membros') {
        header('Location: /dashboard/usuario.php?page=meus_produtos');
        exit;
    }
    
    // Verificar permissões: admin pode editar qualquer curso, usuário só os seus
    if (!$is_admin && ($produto['usuario_id'] != $usuario_id)) {
        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
try {
    $stmt = $pdo->prepare("
        SELECT id, nome, ordem, status, imagem 
        FROM modulos 
        WHERE produto_id = :produto_id 
        ORDER BY ordem ASC, id ASC
    ");
    $stmt->execute([':produto_id' => $produto_id]);
    $modulos = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Buscar aulas para cada módulo
    foreach ($modulos as &$modulo) {
        $stmt_aulas = $pdo->prepare("
            SELECT id, titulo, ordem, duracao, video_url, descricao, materiais_complementares 
            FROM aulas 
            WHERE modulo_id = :modulo_id 
            ORDER BY ordem ASC, id ASC
        ");
        $stmt_aulas->execute([':modulo_id' => $modulo['id']]);
        $aulas = $stmt_aulas->fetchAll(PDO::FETCH_ASSOC);
        
        // Converter JSON de materiais complementares para array
        foreach ($aulas as &$aula) {
            if (!empty($aula['materiais_complementares'])) {
                $aula['materiais_array'] = json_decode($aula['materiais_complementares'], true) ?: [];
            } else {
                $aula['materiais_array'] = [];
            }
        }
        unset($aula);
        
        $modulo['aulas'] = $aulas;
    }
    unset($modulo);
} catch (PDOException $e) {
    error_log("Erro ao buscar módulos/aulas: " . $e->getMessage());
    $modulos = [];
}

// URL de retorno baseada em quem está acessando
$retorno_url = $is_admin ? '/dashboard/index.php?page=produtos' : '/dashboard/usuario.php?page=meus_produtos';
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Editor de Curso - <?= htmlspecialchars($produto['nome']); ?></title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            background: #141414;
            color: #fff;
            min-height: 100vh;
        }
        
        .header {
            background: #1a1a1a;
            padding: 20px 30px;
            border-bottom: 1px solid #333;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .header h1 {
            font-size: 24px;
            color: #fff;
        }
        
        .btn-back {
            background: #333;
            color: #fff;
            padding: 10px 20px;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            text-decoration: none;
            display: inline-block;
            transition: background 0.2s;
        }
        
        .btn-back:hover {
            background: #444;
        }
        
        .container {
            max-width: 1200px;
            margin: 40px auto;
            padding: 0 30px;
        }
        
        .mensagem {
            padding: 15px 20px;
            border-radius: 8px;
            margin-bottom: 20px;
            font-weight: 500;
        }
        
        .mensagem.sucesso {
            background: #10b981;
            color: #fff;
        }
        
        .mensagem.erro {
            background: #ef4444;
            color: #fff;
        }
        
        .info-box {
            background: #1a1a1a;
            padding: 20px;
            border-radius: 8px;
            margin-bottom: 30px;
            border-left: 4px solid #00e676;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .info-box h2 {
            font-size: 20px;
            margin: 0;
        }
        
        .modulos-list {
            display: flex;
            flex-direction: column;
            gap: 20px;
        }
        
        .modulo-card {
            background: #1a1a1a;
            border-radius: 8px;
            padding: 20px;
            border: 1px solid #333;
        }
        
        .modulo-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 15px;
        }
        
        .modulo-title {
            font-size: 20px;
            font-weight: 600;
            color: #fff;
            display: flex;
            align-items: center;
            gap: 10px;
        }
        
        .modulo-title img {
            width: 60px;
            height: 60px;
            object-fit: cover;
            border-radius: 6px;
        }
        
        .modulo-actions {
            display: flex;
            gap: 10px;
            align-items: center;
        }
        
        .btn {
            padding: 8px 16px;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-weight: 500;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            gap: 6px;
            transition: all 0.2s;
            font-size: 14px;
        }
        
        .btn-primary {
            background: #00e676;
            color: #000;
        }
        
        .btn-primary:hover {
            background: #00c966;
        }
        
        .btn-secondary {
            background: #333;
            color: #fff;
        }
        
        .btn-secondary:hover {
            background: #444;
        }
        
        .btn-edit {
            background: #3b82f6;
            color: #fff;
            padding: 6px 12px;
        }
        
        .btn-edit:hover {
            background: #2563eb;
        }
        
        .btn-delete {
            background: #ef4444;
            color: #fff;
            padding: 6px 12px;
        }
        
        .btn-delete:hover {
            background: #dc2626;
        }
        
        .aulas-list {
            margin-top: 15px;
            padding-left: 20px;
        }
        
        .aula-item {
            padding: 12px;
            background: #252525;
            margin-bottom: 8px;
            border-radius: 6px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        
        .aula-info {
            flex: 1;
        }
        
        .aula-title {
            font-weight: 600;
            color: #fff;
            margin-bottom: 4px;
        }
        
        .aula-meta {
            font-size: 12px;
            color: #888;
        }
        
        .aula-actions {
            display: flex;
            gap: 8px;
        }
        
        .empty-state {
            text-align: center;
            padding: 60px 20px;
            color: #888;
        }
        
        .empty-state h2 {
            margin-bottom: 10px;
            color: #fff;
        }
        
        /* Modal Styles */
        .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.8);
            z-index: 10000;
            justify-content: center;
            align-items: center;
        }
        
        .modal.active {
            display: flex;
        }
        
        .modal-content {
            background: #1a1a1a;
            border-radius: 12px;
            padding: 30px;
            max-width: 600px;
            width: 90%;
            max-height: 90vh;
            overflow-y: auto;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
        }
        
        .modal-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 25px;
        }
        
        .modal-header h3 {
            font-size: 24px;
            color: #fff;
            margin: 0;
        }
        
        .modal-close {
            background: none;
            border: none;
            color: #888;
            font-size: 28px;
            cursor: pointer;
            padding: 0;
            width: 30px;
            height: 30px;
            line-height: 1;
        }
        
        .modal-close:hover {
            color: #fff;
        }
        
        .form-group {
            margin-bottom: 20px;
        }
        
        .form-group label {
            display: block;
            margin-bottom: 8px;
            color: #fff;
            font-weight: 500;
        }
        
        .form-group input,
        .form-group textarea,
        .form-group select {
            width: 100%;
            padding: 12px;
            background: #252525;
            border: 1px solid #333;
            border-radius: 6px;
            color: #fff;
            font-size: 14px;
            font-family: inherit;
        }
        
        .form-group input[type="file"] {
            padding: 8px;
            cursor: pointer;
        }
        
        .form-group input:focus,
        .form-group textarea:focus {
            outline: none;
            border-color: #00e676;
            box-shadow: 0 0 0 3px rgba(0, 230, 118, 0.1);
        }
        
        .form-group textarea {
            min-height: 100px;
            resize: vertical;
        }
        
        .form-group img {
            max-width: 200px;
            max-height: 200px;
            border-radius: 6px;
            margin-top: 10px;
        }
        
        .form-actions {
            display: flex;
            gap: 10px;
            margin-top: 30px;
        }
        
        .form-actions .btn {
            flex: 1;
        }
        
        small {
            color: #888;
            font-size: 12px;
        }
    </style>
</head>
<body>
    <div class="header">
        <h1><i class="fas fa-graduation-cap"></i> Editor de Curso</h1>
        <a href="<?= htmlspecialchars($retorno_url); ?>" class="btn-back">
            <i class="fas fa-arrow-left"></i> Voltar
        </a>
    </div>
    
    <div class="container">
        <?php if ($mensagem): ?>
            <div class="mensagem <?= $tipo_mensagem; ?>">
                <?= htmlspecialchars($mensagem); ?>
            </div>
        <?php endif; ?>
        
        <div class="info-box">
            <div>
                <h2><?= htmlspecialchars($produto['nome']); ?></h2>
                <p style="color: #888; margin-top: 5px; font-size: 14px;">Gerencie os módulos e aulas do seu curso aqui.</p>
            </div>
            <div style="display: flex; gap: 10px;">
                <button class="btn" style="background: #00e676; color: #000;" onclick="abrirModalLiberarAcesso()">
                    <i class="fas fa-user-plus"></i> 👤 Liberar Acesso para Aluno
                </button>
                <button class="btn btn-primary" onclick="abrirModalModulo()">
                    <i class="fas fa-plus"></i> Criar Módulo
                </button>
            </div>
        </div>
        
        <?php if (count($modulos) > 0): ?>
            <div class="modulos-list">
                <?php foreach ($modulos as $modulo): ?>
                    <div class="modulo-card">
                        <div class="modulo-header">
                            <div class="modulo-title">
                                <?php if (!empty($modulo['imagem'])): ?>
                                    <img src="<?= htmlspecialchars($modulo['imagem']); ?>" alt="Capa do módulo">
                                <?php endif; ?>
                                <div>
                                    <i class="fas fa-folder"></i> <?= htmlspecialchars($modulo['nome']); ?>
                                </div>
                            </div>
                            <div class="modulo-actions">
                                <span style="color: #888; font-size: 14px; margin-right: 15px;">
                                    <?= count($modulo['aulas'] ?? []); ?> aula(s)
                                </span>
                                <button class="btn btn-edit" onclick="abrirModalEditarModulo(<?= $modulo['id']; ?>, '<?= htmlspecialchars($modulo['nome'], ENT_QUOTES); ?>', <?= $modulo['ordem']; ?>, '<?= htmlspecialchars($modulo['imagem'] ?? '', ENT_QUOTES); ?>')">
                                    <i class="fas fa-edit"></i> Editar
                                </button>
                                <button class="btn btn-delete" onclick="confirmarExcluirModulo(<?= $modulo['id']; ?>, '<?= htmlspecialchars($modulo['nome'], ENT_QUOTES); ?>')">
                                    <i class="fas fa-trash"></i> Excluir
                                </button>
                                <button class="btn btn-primary" onclick="abrirModalAula(<?= $modulo['id']; ?>, '<?= htmlspecialchars($modulo['nome'], ENT_QUOTES); ?>')">
                                    <i class="fas fa-plus"></i> Nova Aula
                                </button>
                            </div>
                        </div>
                        
                        <?php if (!empty($modulo['aulas'])): ?>
                            <div class="aulas-list">
                                <?php foreach ($modulo['aulas'] as $aula): ?>
                                    <div class="aula-item">
                                        <div class="aula-info">
                                            <div class="aula-title">
                                                <i class="fas fa-play-circle" style="color: #00e676; margin-right: 8px;"></i>
                                                <?= htmlspecialchars($aula['titulo']); ?>
                                            </div>
                                            <div class="aula-meta">
                                                <?php if ($aula['duracao']): ?>
                                                    <i class="fas fa-clock"></i> <?= htmlspecialchars($aula['duracao']); ?>
                                                <?php endif; ?>
                                                <?php if ($aula['video_url']): ?>
                                                    <span style="margin-left: 15px;"><i class="fas fa-video"></i> Vídeo</span>
                                                <?php endif; ?>
                                            </div>
                                        </div>
                                        <div class="aula-actions">
                                            <button class="btn btn-edit" onclick="abrirModalEditarAula(<?= $aula['id']; ?>, <?= $modulo['id']; ?>, '<?= htmlspecialchars($aula['titulo'], ENT_QUOTES); ?>', '<?= htmlspecialchars($aula['descricao'] ?? '', ENT_QUOTES); ?>', '<?= htmlspecialchars($aula['video_url'] ?? '', ENT_QUOTES); ?>', '<?= htmlspecialchars($aula['duracao'] ?? '', ENT_QUOTES); ?>', <?= $aula['ordem']; ?>, <?= htmlspecialchars(json_encode($aula['materiais_array'] ?? []), ENT_QUOTES); ?>)">
                                                <i class="fas fa-edit"></i>
                                            </button>
                                            <button class="btn btn-delete" onclick="confirmarExcluirAula(<?= $aula['id']; ?>, '<?= htmlspecialchars($aula['titulo'], ENT_QUOTES); ?>')">
                                                <i class="fas fa-trash"></i>
                                            </button>
                                        </div>
                                    </div>
                                <?php endforeach; ?>
                            </div>
                        <?php else: ?>
                            <div style="padding: 20px; text-align: center; color: #888;">
                                <p>Nenhuma aula neste módulo. Clique em "Nova Aula" para adicionar.</p>
                            </div>
                        <?php endif; ?>
                    </div>
                <?php endforeach; ?>
            </div>
        <?php else: ?>
            <div class="empty-state">
                <i class="fas fa-inbox" style="font-size: 64px; margin-bottom: 20px; opacity: 0.3;"></i>
                <h2>Nenhum módulo encontrado</h2>
                <p style="margin-top: 10px;">Crie seu primeiro módulo e comece a adicionar aulas ao curso.</p>
                <button class="btn btn-primary" style="margin-top: 20px;" onclick="abrirModalModulo()">
                    <i class="fas fa-plus"></i> Criar Primeiro Módulo
                </button>
            </div>
        <?php endif; ?>
    </div>
    
    <!-- Modal: Criar Módulo -->
    <div id="modal-modulo" class="modal">
        <div class="modal-content">
            <div class="modal-header">
                <h3><i class="fas fa-folder"></i> Criar Novo Módulo</h3>
                <button class="modal-close" onclick="fecharModalModulo()">&times;</button>
            </div>
            <form method="POST" action="" enctype="multipart/form-data">
                <input type="hidden" name="acao" value="criar_modulo">
                <input type="hidden" name="produto_id" value="<?= $produto_id; ?>">
                
                <div class="form-group">
                    <label for="nome_modulo">Nome do Módulo *</label>
                    <input type="text" id="nome_modulo" name="nome_modulo" required placeholder="Ex: Módulo 1: Introdução">
                </div>
                
                <div class="form-group">
                    <label for="imagem_modulo">Imagem de Capa (opcional)</label>
                    <input type="file" id="imagem_modulo" name="imagem_modulo" accept="image/jpeg,image/jpg,image/png,image/webp">
                    <small>Apenas JPG, PNG ou WEBP. Tamanho máximo: 5MB</small>
                </div>
                
                <div class="form-group">
                    <label for="ordem_modulo">Ordem (opcional - deixe vazio para automático)</label>
                    <input type="number" id="ordem_modulo" name="ordem_modulo" min="1" placeholder="1, 2, 3...">
                </div>
                
                <div class="form-actions">
                    <button type="button" class="btn btn-secondary" onclick="fecharModalModulo()">Cancelar</button>
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-check"></i> Criar Módulo
                    </button>
                </div>
            </form>
        </div>
    </div>
    
    <!-- Modal: Editar Módulo -->
    <div id="modal-editar-modulo" class="modal">
        <div class="modal-content">
            <div class="modal-header">
                <h3><i class="fas fa-edit"></i> Editar Módulo</h3>
                <button class="modal-close" onclick="fecharModalEditarModulo()">&times;</button>
            </div>
            <form method="POST" action="" enctype="multipart/form-data">
                <input type="hidden" name="acao" value="editar_modulo">
                <input type="hidden" name="produto_id" value="<?= $produto_id; ?>">
                <input type="hidden" id="modulo_id_edit" name="modulo_id" value="">
                <input type="hidden" id="imagem_atual" name="imagem_atual" value="">
                
                <div class="form-group">
                    <label for="nome_modulo_edit">Nome do Módulo *</label>
                    <input type="text" id="nome_modulo_edit" name="nome_modulo" required>
                </div>
                
                <div class="form-group">
                    <label for="imagem_modulo_edit">Nova Imagem de Capa (opcional)</label>
                    <div id="imagem-preview-container">
                        <img id="imagem-preview-edit" src="" alt="Imagem atual" style="display: none;">
                    </div>
                    <input type="file" id="imagem_modulo_edit" name="imagem_modulo" accept="image/jpeg,image/jpg,image/png,image/webp">
                    <small>Deixe vazio para manter a imagem atual. Apenas JPG, PNG ou WEBP. Tamanho máximo: 5MB</small>
                </div>
                
                <div class="form-group">
                    <label for="ordem_modulo_edit">Ordem</label>
                    <input type="number" id="ordem_modulo_edit" name="ordem_modulo" min="1">
                </div>
                
                <div class="form-actions">
                    <button type="button" class="btn btn-secondary" onclick="fecharModalEditarModulo()">Cancelar</button>
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-check"></i> Salvar Alterações
                    </button>
                </div>
            </form>
        </div>
    </div>
    
    <!-- Modal: Criar Aula -->
    <div id="modal-aula" class="modal">
        <div class="modal-content">
            <div class="modal-header">
                <h3><i class="fas fa-play-circle"></i> Criar Nova Aula</h3>
                <button class="modal-close" onclick="fecharModalAula()">&times;</button>
            </div>
            <form method="POST" action="">
                <input type="hidden" name="acao" value="criar_aula">
                <input type="hidden" name="produto_id" value="<?= $produto_id; ?>">
                <input type="hidden" id="modulo_id" name="modulo_id" value="">
                
                <div style="background: #252525; padding: 15px; border-radius: 6px; margin-bottom: 20px;">
                    <strong style="color: #00e676;">Módulo:</strong>
                    <span id="modulo-nome-display" style="color: #888; margin-left: 10px;"></span>
                </div>
                
                <div class="form-group">
                    <label for="titulo_aula">Título da Aula *</label>
                    <input type="text" id="titulo_aula" name="titulo_aula" required placeholder="Ex: Aula 1: Primeiros Passos">
                </div>
                
                <div class="form-group">
                    <label for="descricao_aula">Descrição (Texto/HTML)</label>
                    <textarea id="descricao_aula" name="descricao_aula" placeholder="Descrição detalhada da aula, conteúdo, objetivos..."></textarea>
                </div>
                
                <div class="form-group">
                    <label for="video_url">Link do Vídeo (YouTube/Vimeo/Panda/Iframe)</label>
                    <input type="url" id="video_url" name="video_url" placeholder="https://www.youtube.com/watch?v=... ou URL de embed">
                </div>
                
                <div class="form-group">
                    <label for="duracao">Duração (opcional)</label>
                    <input type="text" id="duracao" name="duracao" placeholder="Ex: 10:00, 1h 30min">
                </div>
                
                <div class="form-group">
                    <label for="ordem_aula">Ordem (opcional - deixe vazio para automático)</label>
                    <input type="number" id="ordem_aula" name="ordem_aula" min="1" placeholder="1, 2, 3...">
                </div>
                
                <div class="form-group">
                    <label for="materiais_complementares">Arquivos Complementares (Links - um por linha)</label>
                    <textarea id="materiais_complementares" name="materiais_complementares" placeholder="Cole os links dos arquivos, um por linha&#10;Ex:&#10;https://exemplo.com/arquivo1.pdf&#10;https://exemplo.com/arquivo2.zip"></textarea>
                    <small>Adicione links de PDFs, ZIPs ou outros arquivos complementares (um link por linha)</small>
                </div>
                
                <div class="form-actions">
                    <button type="button" class="btn btn-secondary" onclick="fecharModalAula()">Cancelar</button>
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-check"></i> Criar Aula
                    </button>
                </div>
            </form>
        </div>
    </div>
    
    <!-- Modal: Editar Aula -->
    <div id="modal-editar-aula" class="modal">
        <div class="modal-content">
            <div class="modal-header">
                <h3><i class="fas fa-edit"></i> Editar Aula</h3>
                <button class="modal-close" onclick="fecharModalEditarAula()">&times;</button>
            </div>
            <form method="POST" action="">
                <input type="hidden" name="acao" value="editar_aula">
                <input type="hidden" name="produto_id" value="<?= $produto_id; ?>">
                <input type="hidden" id="aula_id_edit" name="aula_id" value="">
                <input type="hidden" id="modulo_id_edit_aula" name="modulo_id" value="">
                
                <div class="form-group">
                    <label for="titulo_aula_edit">Título da Aula *</label>
                    <input type="text" id="titulo_aula_edit" name="titulo_aula" required>
                </div>
                
                <div class="form-group">
                    <label for="descricao_aula_edit">Descrição (Texto/HTML)</label>
                    <textarea id="descricao_aula_edit" name="descricao_aula"></textarea>
                </div>
                
                <div class="form-group">
                    <label for="video_url_edit">Link do Vídeo (YouTube/Vimeo/Panda/Iframe)</label>
                    <input type="url" id="video_url_edit" name="video_url">
                </div>
                
                <div class="form-group">
                    <label for="duracao_edit">Duração (opcional)</label>
                    <input type="text" id="duracao_edit" name="duracao">
                </div>
                
                <div class="form-group">
                    <label for="ordem_aula_edit">Ordem</label>
                    <input type="number" id="ordem_aula_edit" name="ordem_aula" min="1">
                </div>
                
                <div class="form-group">
                    <label for="materiais_complementares_edit">Arquivos Complementares (Links - um por linha)</label>
                    <textarea id="materiais_complementares_edit" name="materiais_complementares"></textarea>
                    <small>Um link por linha</small>
                </div>
                
                <div class="form-actions">
                    <button type="button" class="btn btn-secondary" onclick="fecharModalEditarAula()">Cancelar</button>
                    <button type="submit" class="btn btn-primary">
                        <i class="fas fa-check"></i> Salvar Alterações
                    </button>
                </div>
            </form>
        </div>
    </div>
    
    <!-- Formulário oculto para exclusão -->
    <form id="form-excluir-modulo" method="POST" action="" style="display: none;">
        <input type="hidden" name="acao" value="excluir_modulo">
        <input type="hidden" name="produto_id" value="<?= $produto_id; ?>">
        <input type="hidden" id="modulo_id_excluir" name="modulo_id" value="">
    </form>
    
    <form id="form-excluir-aula" method="POST" action="" style="display: none;">
        <input type="hidden" name="acao" value="excluir_aula">
        <input type="hidden" id="aula_id_excluir" name="aula_id" value="">
    </form>
    
    <script>
        function abrirModalModulo() {
            document.getElementById('modal-modulo').classList.add('active');
            document.getElementById('nome_modulo').focus();
        }
        
        function fecharModalModulo() {
            document.getElementById('modal-modulo').classList.remove('active');
            document.getElementById('modal-modulo').querySelector('form').reset();
        }
        
        function abrirModalEditarModulo(moduloId, nome, ordem, imagem) {
            document.getElementById('modulo_id_edit').value = moduloId;
            document.getElementById('nome_modulo_edit').value = nome;
            document.getElementById('ordem_modulo_edit').value = ordem;
            document.getElementById('imagem_atual').value = imagem || '';
            
            const previewImg = document.getElementById('imagem-preview-edit');
            if (imagem) {
                previewImg.src = imagem;
                previewImg.style.display = 'block';
            } else {
                previewImg.style.display = 'none';
            }
            
            document.getElementById('modal-editar-modulo').classList.add('active');
            document.getElementById('nome_modulo_edit').focus();
        }
        
        function fecharModalEditarModulo() {
            document.getElementById('modal-editar-modulo').classList.remove('active');
            document.getElementById('modal-editar-modulo').querySelector('form').reset();
        }
        
        function confirmarExcluirModulo(moduloId, nome) {
            if (confirm('Tem certeza que deseja excluir o módulo "' + nome + '"?\n\nEsta ação excluirá TODAS as aulas deste módulo e não pode ser desfeita.')) {
                document.getElementById('modulo_id_excluir').value = moduloId;
                document.getElementById('form-excluir-modulo').submit();
            }
        }
        
        function abrirModalAula(moduloId, moduloNome) {
            document.getElementById('modulo_id').value = moduloId;
            document.getElementById('modulo-nome-display').textContent = moduloNome;
            document.getElementById('modal-aula').classList.add('active');
            document.getElementById('titulo_aula').focus();
        }
        
        function fecharModalAula() {
            document.getElementById('modal-aula').classList.remove('active');
            document.getElementById('modal-aula').querySelector('form').reset();
        }
        
        function abrirModalEditarAula(aulaId, moduloId, titulo, descricao, videoUrl, duracao, ordem, materiais) {
            document.getElementById('aula_id_edit').value = aulaId;
            document.getElementById('modulo_id_edit_aula').value = moduloId;
            document.getElementById('titulo_aula_edit').value = titulo;
            document.getElementById('descricao_aula_edit').value = descricao || '';
            document.getElementById('video_url_edit').value = videoUrl || '';
            document.getElementById('duracao_edit').value = duracao || '';
            document.getElementById('ordem_aula_edit').value = ordem;
            
            // Processar materiais complementares
            let materiaisArray = [];
            try {
                materiaisArray = JSON.parse(materiais);
            } catch (e) {
                materiaisArray = [];
            }
            document.getElementById('materiais_complementares_edit').value = materiaisArray.join('\n');
            
            document.getElementById('modal-editar-aula').classList.add('active');
            document.getElementById('titulo_aula_edit').focus();
        }
        
        function fecharModalEditarAula() {
            document.getElementById('modal-editar-aula').classList.remove('active');
            document.getElementById('modal-editar-aula').querySelector('form').reset();
        }
        
        function confirmarExcluirAula(aulaId, titulo) {
            if (confirm('Tem certeza que deseja excluir a aula "' + titulo + '"?\n\nEsta ação não pode ser desfeita.')) {
                document.getElementById('aula_id_excluir').value = aulaId;
                document.getElementById('form-excluir-aula').submit();
            }
        }
        
        // Fechar modais ao clicar fora
        document.addEventListener('click', function(e) {
            if (e.target.classList.contains('modal')) {
                e.target.classList.remove('active');
            }
        });
        
        // Fechar modais com ESC
        document.addEventListener('keydown', function(e) {
            if (e.key === 'Escape') {
                fecharModalModulo();
                fecharModalEditarModulo();
                fecharModalAula();
                fecharModalEditarAula();
                fecharModalLiberarAcesso();
            }
        });
    </script>
    
    <!-- Modal: Liberar Acesso para Aluno -->
    <div id="modal-liberar-acesso-aluno" class="modal" style="display: none;">
        <div class="modal-content">
            <div class="modal-header">
                <h3><i class="fas fa-user-plus"></i> Liberar Acesso para Aluno</h3>
                <button class="modal-close" onclick="fecharModalLiberarAcesso()">&times;</button>
            </div>
            <form id="form-liberar-acesso-aluno" onsubmit="return false;">
                <input type="hidden" id="produto-id-liberacao" name="produto_id" value="<?= $produto_id; ?>">
                
                <div class="form-group">
                    <label for="nome-aluno">Nome do Aluno *</label>
                    <input type="text" id="nome-aluno" name="nome" required placeholder="Nome completo do aluno">
                </div>
                
                <div class="form-group">
                    <label for="email-aluno">E-mail do Aluno *</label>
                    <input type="email" id="email-aluno" name="email" required placeholder="aluno@exemplo.com">
                </div>
                
                <div id="mensagem-liberacao" style="margin-top: 15px; display: none; padding: 15px; border-radius: 8px;"></div>
                
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" onclick="fecharModalLiberarAcesso()">Cancelar</button>
                    <button type="button" class="btn btn-primary" id="btn-confirmar-liberacao-aluno">
                        <i class="fas fa-check"></i> Confirmar Liberação
                    </button>
                </div>
            </form>
        </div>
    </div>

<script>
// Funções para Modal de Liberar Acesso
function abrirModalLiberarAcesso() {
    const modal = document.getElementById('modal-liberar-acesso-aluno');
    if (modal) {
        modal.style.display = 'flex';
        document.getElementById('nome-aluno').focus();
        document.getElementById('mensagem-liberacao').style.display = 'none';
        document.getElementById('form-liberar-acesso-aluno').reset();
    }
}

function fecharModalLiberarAcesso() {
    const modal = document.getElementById('modal-liberar-acesso-aluno');
    if (modal) {
        modal.style.display = 'none';
        document.getElementById('mensagem-liberacao').style.display = 'none';
    }
}

// Event Listener para confirmar liberação
document.addEventListener('DOMContentLoaded', function() {
    const btnConfirmar = document.getElementById('btn-confirmar-liberacao-aluno');
    const form = document.getElementById('form-liberar-acesso-aluno');
    const mensagemDiv = document.getElementById('mensagem-liberacao');
    
    if (btnConfirmar && form) {
        btnConfirmar.addEventListener('click', function(e) {
            e.preventDefault();
            
            const formData = new FormData(form);
            mensagemDiv.style.display = 'block';
            mensagemDiv.style.background = '#fff3cd';
            mensagemDiv.style.color = '#856404';
            mensagemDiv.style.border = '2px solid #ffc107';
            mensagemDiv.innerHTML = '<i class="fas fa-spinner fa-spin"></i> Processando...';
            
            fetch('/backend/liberar_acesso_manual.php', {
                method: 'POST',
                body: formData
            })
            .then(response => response.json())
            .then(data => {
                if (data.status === 'success') {
                    mensagemDiv.style.background = '#10b981';
                    mensagemDiv.style.color = '#fff';
                    mensagemDiv.style.border = '2px solid #10b981';
                    mensagemDiv.innerHTML = '<i class="fas fa-check-circle"></i> ' + data.message;
                    form.reset();
                    setTimeout(fecharModalLiberarAcesso, 2000);
                } else {
                    mensagemDiv.style.background = '#ef4444';
                    mensagemDiv.style.color = '#fff';
                    mensagemDiv.style.border = '2px solid #ef4444';
                    mensagemDiv.innerHTML = '<i class="fas fa-exclamation-circle"></i> ' + (data.message || 'Erro ao liberar acesso');
                }
            })
            .catch(error => {
                mensagemDiv.style.background = '#ef4444';
                mensagemDiv.style.color = '#fff';
                mensagemDiv.style.border = '2px solid #ef4444';
                mensagemDiv.innerHTML = '<i class="fas fa-exclamation-circle"></i> Erro de comunicação com o servidor';
                console.error('Erro:', error);
            });
        });
    }
    
    // Fechar modal ao clicar fora
    const modal = document.getElementById('modal-liberar-acesso-aluno');
    if (modal) {
        modal.addEventListener('click', function(e) {
            if (e.target === modal) {
                fecharModalLiberarAcesso();
            }
        });
    }
});
</script>
</body>
</html>
