
def staff_permissions(request):
    user = getattr(request, 'user', None)
    perms = {
        'is_admin': False,
        'can_manage_inventory': False,
        'can_manage_orders': False,
        'can_view_analytics': False,
        'can_manage_finance': False,
        'can_manage_content': False,
        'can_manage_staff': False,
        'can_perform_order_actions': False,
    }
    if user and getattr(user, 'is_authenticated', False):
        perms['is_admin'] = getattr(user, 'is_admin', False)
        try:
            perms['can_manage_inventory'] = user.has_permission('manage_inventory')
            perms['can_manage_orders'] = user.has_permission('manage_orders')
            perms['can_view_analytics'] = (getattr(user, 'is_admin', False) or getattr(user, 'role', None) in ['STAFF_ADMIN', 'ACCOUNTANT'])
            perms['can_manage_finance'] = user.has_permission('manage_finance')
            perms['can_manage_content'] = user.has_permission('manage_categories') or user.has_permission('manage_products')
            perms['can_manage_staff'] = user.has_permission('manage_staff')
            perms['can_perform_order_actions'] = (getattr(user, 'is_admin', False) or getattr(user, 'role', None) in ['STAFF_ADMIN', 'ACCOUNTANT'])
        except Exception:
            pass
    return perms

def site_settings(request):
    config = None
    try:
        from ai_features.models import AIConfiguration
        config = AIConfiguration.get_settings()
    except Exception as e:
        print(f"Error loading site settings: {e}")
        # Fallback to defaults if DB or Import fails
        class DefaultConfig:
            site_name = 'AiBiMagics'
            primary_color = '#FF9900'  # Orange (Amazon-like)
            primary_hover = '#E47911'
            secondary_color = '#232F3E' # Dark Blue
            accent_color = '#FF9900'
            primary_shadow = 'rgba(255, 153, 0, 0.3)'
            primary_light = 'rgba(255, 153, 0, 0.1)'
            success_color = '#28a745'
            warning_color = '#ffc107'
            error_color = '#dc3545'
            info_color = '#17a2b8'
            favicon = None
            custom_css = ''
            header_scripts = ''
            tax_rate_percent = 18
            
        config = DefaultConfig()
            
    return {
        'site_config': config
    }
