// Sistema de autenticación con PIN

class AuthManager {
    constructor() {
        this.usuario = null;
        this.autenticado = false;
    }

    // Verificar si hay sesión activa
    async verificarSesion() {
        try {
            const response = await fetch('/api/auth.php');
            const data = await response.json();
            
            if (data.autenticado) {
                this.autenticado = true;
                this.usuario = data.usuario;
                return true;
            }
            return false;
        } catch (error) {
            console.error('Error al verificar sesión:', error);
            return false;
        }
    }

    // Autenticar con PIN
    async autenticar(pin) {
        try {
            const response = await fetch('/api/auth.php', {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({ pin })
            });
            
            const data = await response.json();
            
            if (data.success) {
                this.autenticado = true;
                this.usuario = data.usuario;
                return { success: true, usuario: data.usuario };
            } else {
                return { success: false, mensaje: data.mensaje };
            }
        } catch (error) {
            console.error('Error al autenticar:', error);
            return { success: false, mensaje: 'Error de conexión' };
        }
    }

    // Cerrar sesión
    async cerrarSesion() {
        try {
            await fetch('/api/auth.php', {
                method: 'DELETE'
            });
            
            this.autenticado = false;
            this.usuario = null;
            window.location.href = '/login';
        } catch (error) {
            console.error('Error al cerrar sesión:', error);
        }
    }

    // Proteger página (redirigir si no está autenticado)
    async protegerPagina() {
        const sesionActiva = await this.verificarSesion();
        
        if (!sesionActiva) {
            window.location.href = '/login';
        }
        
        return sesionActiva;
    }

    obtenerUsuario() {
        return this.usuario;
    }

    estaAutenticado() {
        return this.autenticado;
    }
}

// Instancia global
const authManager = new AuthManager();
