from django_filters import rest_framework as filters

from apps.userprofile.models import UserProfile


class UserProfileFilter(filters.FilterSet):
    class Meta:
        model = UserProfile
        fields = [
            'user', 'user__user_type', 'user__is_active',
            'user__is_staff', 'user__is_superuser', 'user__email'
        ]
    
    def filter_queryset(self, queryset):
        """Filter queryset to only show users in the same active company"""
        user = self.request.user
        
        # Superusers can see all profiles
        if user.is_superuser:
            return super().filter_queryset(queryset)
        
        # Regular users can only see profiles of users in their active company
        if user.active_company:
            return super().filter_queryset(queryset).filter(
                user__companies=user.active_company
            )
        
        # No active company, return empty queryset
        return queryset.none()
