phase3: add normalized domain schema, admin, services, and multistage docker build
This commit is contained in:
0
apps/scouting/services/__init__.py
Normal file
0
apps/scouting/services/__init__.py
Normal file
28
apps/scouting/services/searches.py
Normal file
28
apps/scouting/services/searches.py
Normal file
@ -0,0 +1,28 @@
|
||||
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
|
||||
Reference in New Issue
Block a user