/**
 * ملف دوال المصادقة المساعدة
 * المسار: /assets/js/auth.js
 */

const Auth = {
    /**
     * التحقق من تسجيل الدخول
     */
    checkAuth(redirectTo = '/frontend/auth/login.html') {
        const user = API.getCurrentUser();
        const token = API.getToken();
        
        if (!user || !token) {
            window.location.href = redirectTo;
            return false;
        }
        return user;
    },
    
    /**
     * التحقق من الدور
     */
    checkRole(requiredRole, redirectTo = '/frontend/auth/unauthorized.html') {
        const user = this.checkAuth();
        if (!user) return false;
        
        if (user.role !== requiredRole) {
            window.location.href = redirectTo;
            return false;
        }
        return true;
    },
    
    /**
     * التحقق من الأدوار المسموحة
     */
    checkRoles(allowedRoles, redirectTo = '/frontend/auth/unauthorized.html') {
        const user = this.checkAuth();
        if (!user) return false;
        
        if (!allowedRoles.includes(user.role)) {
            window.location.href = redirectTo;
            return false;
        }
        return true;
    },
    
    /**
     * تحديث معلومات المستخدم
     */
    async refreshUser() {
        try {
            const response = await API.client.profile();
            if (response.success) {
                localStorage.setItem('user', JSON.stringify(response.user));
                return response.user;
            }
        } catch (error) {
            console.error('Error refreshing user:', error);
        }
        return null;
    },
    
    /**
     * اسم الدور بالعربية
     */
    getRoleName(role) {
        const roles = {
            'admin': 'مدير النظام',
            'supervisor': 'مشرف',
            'inspector': 'فاحص',
            'client': 'عميل',
            'cashier': 'أمين صندوق'
        };
        return roles[role] || role;
    }
};

window.Auth = Auth;