From da8b7d26277d6429c71fc34b0df69ace6ecb08b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Salazar?= <73718835+joshrs23@users.noreply.github.com> Date: Thu, 29 Jan 2026 18:12:16 -0500 Subject: [PATCH] validation if a hug has orders --- .../hub_repository_impl.dart | 19 +++++++++++++++++++ .../dataconnect/connector/order/queries.gql | 1 + 2 files changed, 20 insertions(+) diff --git a/apps/mobile/packages/features/client/hubs/lib/src/data/repositories_impl/hub_repository_impl.dart b/apps/mobile/packages/features/client/hubs/lib/src/data/repositories_impl/hub_repository_impl.dart index bdfa6198..fdfec83d 100644 --- a/apps/mobile/packages/features/client/hubs/lib/src/data/repositories_impl/hub_repository_impl.dart +++ b/apps/mobile/packages/features/client/hubs/lib/src/data/repositories_impl/hub_repository_impl.dart @@ -94,6 +94,25 @@ class HubRepositoryImpl implements HubRepositoryInterface { @override Future deleteHub(String id) async { + final String? businessId = dc.ClientSessionStore.instance.session?.business?.id; + if (businessId == null || businessId.isEmpty) { + await _firebaseAuth.signOut(); + throw Exception('Business is missing. Please sign in again.'); + } + + final QueryResult< + dc.ListOrdersByBusinessAndTeamHubData, + dc.ListOrdersByBusinessAndTeamHubVariables> result = await _dataConnect + .listOrdersByBusinessAndTeamHub( + businessId: businessId, + teamHubId: id, + ) + .execute(); + + if (result.data.orders.isNotEmpty) { + throw Exception("Sorry this hub has orders, it can't be deleted."); + } + await _dataConnect.deleteTeamHub(id: id).execute(); } diff --git a/backend/dataconnect/connector/order/queries.gql b/backend/dataconnect/connector/order/queries.gql index 162882c7..c500c595 100644 --- a/backend/dataconnect/connector/order/queries.gql +++ b/backend/dataconnect/connector/order/queries.gql @@ -404,6 +404,7 @@ query listOrdersByBusinessAndTeamHub( where: { businessId: { eq: $businessId } teamHubId: { eq: $teamHubId } + #status: {in: [ DRAFT POSTED FILLED PENDING FULLY_STAFFED PARTIAL_STAFFED ] } } offset: $offset limit: $limit