from django.db.models import QuerySet from apps.players.models import Player def apply_saved_search_filters(queryset: QuerySet[Player], filters: dict) -> QuerySet[Player]: """Apply structured saved-search filters to a player queryset.""" nationality_id = filters.get("nationality_id") if nationality_id: queryset = queryset.filter(nationality_id=nationality_id) nominal_position_id = filters.get("nominal_position_id") if nominal_position_id: queryset = queryset.filter(nominal_position_id=nominal_position_id) inferred_role_id = filters.get("inferred_role_id") if inferred_role_id: queryset = queryset.filter(inferred_role_id=inferred_role_id) min_height_cm = filters.get("min_height_cm") if min_height_cm is not None: queryset = queryset.filter(height_cm__gte=min_height_cm) max_height_cm = filters.get("max_height_cm") if max_height_cm is not None: queryset = queryset.filter(height_cm__lte=max_height_cm) return queryset