<?php
// /addons/game_system/functions.php

/**
 * Genera un slug limpio para las URLs (SEO Friendly)
 */
function g_create_slug($string) {
    $slug = preg_replace('/[^A-Za-z0-9-]+/', '-', $string);
    return strtolower(trim($slug, '-'));
}

/**
 * Obtiene todos los juegos activos para el Grid del Home
 */
function g_get_active_games($pdo) {
    try {
        // Usamos status = 1 para mostrar solo juegos habilitados
        $stmt = $pdo->query("SELECT * FROM games WHERE status = 1 ORDER BY priority DESC, name ASC");
        return $stmt->fetchAll();
    } catch (PDOException $e) {
        return []; // Retorna array vacío si hay error en la tabla
    }
}

/**
 * Obtiene los datos de un juego por su ID
 * Útil para mostrar el título del Marketplace aunque no haya productos
 */
function g_get_game_details($pdo, $game_id) {
    if (!$game_id) return null;
    
    try {
        $stmt = $pdo->prepare("SELECT * FROM games WHERE id = ? LIMIT 1");
        $stmt->execute([(int)$game_id]);
        $game = $stmt->fetch();
        return $game ? $game : null;
    } catch (PDOException $e) {
        return null;
    }
}

/**
 * Obtiene las categorías principales vinculadas a un juego
 * (Opcional: Por si quieres mostrar solo categorías que tengan stock en ese juego)
 */
function g_get_game_categories($pdo, $game_id) {
    $sql = "SELECT DISTINCT c.* FROM categories c 
            JOIN products p ON p.category_id = c.id 
            WHERE p.game_id = ? AND p.status = 'available'";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([(int)$game_id]);
    return $stmt->fetchAll();
}
?>