feat(geo): filter clustered nodes by product/hub/supplier
All checks were successful
Build Docker Image / build (push) Successful in 2m42s

This commit is contained in:
Ruslan Bakiev
2026-02-07 08:27:54 +07:00
parent f5f261ff89
commit eb73c5b1a1
2 changed files with 110 additions and 6 deletions

View File

@@ -248,6 +248,9 @@ class Query(graphene.ObjectType):
zoom=graphene.Int(required=True, description="Map zoom level (0-16)"),
transport_type=graphene.String(description="Filter by transport type"),
node_type=graphene.String(description="Node type: logistics, offer, supplier"),
product_uuid=graphene.String(description="Filter by product UUID"),
hub_uuid=graphene.String(description="Filter by hub UUID"),
supplier_uuid=graphene.String(description="Filter by supplier UUID"),
description="Get clustered nodes for map display (server-side clustering)",
)
@@ -848,10 +851,35 @@ class Query(graphene.ObjectType):
return None
def resolve_clustered_nodes(self, info, west, south, east, north, zoom, transport_type=None, node_type=None):
def resolve_clustered_nodes(
self,
info,
west,
south,
east,
north,
zoom,
transport_type=None,
node_type=None,
product_uuid=None,
hub_uuid=None,
supplier_uuid=None,
):
"""Get clustered nodes for map display using server-side SuperCluster."""
db = get_db()
clusters = get_clustered_nodes(db, west, south, east, north, zoom, transport_type, node_type)
clusters = get_clustered_nodes(
db,
west,
south,
east,
north,
zoom,
transport_type,
node_type,
product_uuid,
hub_uuid,
supplier_uuid,
)
return [ClusterPointType(**c) for c in clusters]
def resolve_products(self, info):