<?php
/**
 * Funções auxiliares para o MEC Command Center
 * Não faz require do db.php aqui — o $pdo é passado como parâmetro
 */

/**
 * Calcula a porcentagem de conclusão de um curso
 */
function getCourseProgress($course_id, $pdo) {
    // Total de itens que precisam ser preenchidos
    $stmt = $pdo->query("SELECT COUNT(*) FROM itens");
    $total_itens = $stmt->fetchColumn();

    if ($total_itens == 0) return 0;

    // Itens que estão com status 'Pronto'
    $stmt = $pdo->prepare("SELECT COUNT(*) FROM progresso WHERE curso_id = ? AND status = 'Pronto'");
    $stmt->execute([$course_id]);
    $prontos = $stmt->fetchColumn();

    return round(($prontos / $total_itens) * 100);
}

/**
 * Busca todos os cursos
 */
function getCursos($pdo) {
    $stmt = $pdo->query("SELECT * FROM cursos");
    return $stmt->fetchAll();
}

/**
 * Busca categorias com progresso para um curso específico
 */
function getCategoriesWithProgress($course_id, $pdo) {
    $stmt = $pdo->query("SELECT * FROM categorias");
    $categories = $stmt->fetchAll();

    foreach ($categories as &$cat) {
        // Total de itens nesta categoria
        $stmt = $pdo->prepare("
            SELECT COUNT(i.id) 
            FROM itens i 
            JOIN subcategorias s ON i.subcategoria_id = s.id 
            WHERE s.categoria_id = ?
        ");
        $stmt->execute([$cat['id']]);
        $total = $stmt->fetchColumn();

        // Itens prontos nesta categoria para este curso
        $stmt = $pdo->prepare("
            SELECT COUNT(p.id) 
            FROM progresso p
            JOIN itens i ON p.item_id = i.id
            JOIN subcategorias s ON i.subcategoria_id = s.id
            WHERE p.curso_id = ? AND s.categoria_id = ? AND p.status = 'Pronto'
        ");
        $stmt->execute([$course_id, $cat['id']]);
        $prontos = $stmt->fetchColumn();

        $cat['progress'] = $total > 0 ? round(($prontos / $total) * 100) : 0;
        $cat['total_itens'] = $total;
        $cat['prontos'] = $prontos;
    }

    return $categories;
}
