<?php
// concurso_nobel/includes/auditoria.php

declare(strict_types=1);

if (!function_exists('cn_tabla_existe')) {
    function cn_tabla_existe(mysqli $conn, string $tabla): bool
    {
        $tabla = mysqli_real_escape_string($conn, $tabla);
        $res = @mysqli_query($conn, "SHOW TABLES LIKE '{$tabla}'");
        return $res && mysqli_num_rows($res) > 0;
    }
}

if (!function_exists('cn_auditar')) {
    function cn_auditar(
        mysqli $conn,
        ?int $idConcurso,
        ?int $idGrupo,
        ?int $idAcceso,
        ?int $idParticipante,
        string $accion,
        string $detalle
    ): void {
        if (!cn_tabla_existe($conn, 'concurso_auditoria')) {
            return;
        }

        $ip = $_SERVER['REMOTE_ADDR'] ?? '';
        $userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';

        $stmt = mysqli_prepare($conn, "
            INSERT INTO concurso_auditoria
                (id_concurso, id_grupo, id_acceso, id_participante, accion, detalle, ip, user_agent, created_at)
            VALUES
                (?, ?, ?, ?, ?, ?, ?, ?, NOW())
        ");

        if (!$stmt) {
            return;
        }

        mysqli_stmt_bind_param(
            $stmt,
            'iiiissss',
            $idConcurso,
            $idGrupo,
            $idAcceso,
            $idParticipante,
            $accion,
            $detalle,
            $ip,
            $userAgent
        );

        mysqli_stmt_execute($stmt);
        mysqli_stmt_close($stmt);
    }
}
