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