Refactor booking system: replace BookingSystemService with BookableSystemService and update parameter handling for improved clarity

This commit is contained in:
mohammad
2025-07-10 11:25:35 +03:00
parent 2b638940ae
commit bfd6b5c3a0
6 changed files with 27 additions and 33 deletions

View File

@ -1,11 +1,10 @@
import 'dart:async';
import 'package:meta/meta.dart';
import 'package:syncrow_web/pages/access_management/booking_system/domain/load_bookable_spaces_param.dart';
import 'package:syncrow_web/pages/access_management/booking_system/domain/models/paginated_bookable_spaces.dart';
import 'package:syncrow_web/pages/access_management/booking_system/domain/services/booking_system_service.dart';
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/params/load_communities_param.dart';
import 'package:syncrow_web/pages/access_management/booking_system/domain/services/bookable_system_service.dart';
class DebouncedBookingSystemService implements BookingSystemService {
final BookingSystemService _inner;
class DebouncedBookingSystemService implements BookableSystemService {
final BookableSystemService _inner;
final Duration debounceDuration;
Timer? _debounceTimer;
@ -18,12 +17,11 @@ class DebouncedBookingSystemService implements BookingSystemService {
@override
Future<PaginatedBookableSpaces> getBookableSpaces({
required LoadCommunitiesParam param,
required LoadBookableSpacesParam param,
}) {
_debounceTimer?.cancel();
if (_lastCompleter != null && !_lastCompleter!.isCompleted) {
_lastCompleter!
.completeError(StateError("Cancelled by new search"));
_lastCompleter!.completeError(StateError("Cancelled by new search"));
}
final completer = Completer<PaginatedBookableSpaces>();

View File

@ -0,0 +1,8 @@
import 'package:syncrow_web/pages/access_management/booking_system/domain/load_bookable_spaces_param.dart';
import 'package:syncrow_web/pages/access_management/booking_system/domain/models/paginated_bookable_spaces.dart';
abstract class BookableSystemService {
Future<PaginatedBookableSpaces> getBookableSpaces({
required LoadBookableSpacesParam param,
});
}

View File

@ -1,8 +0,0 @@
import 'package:syncrow_web/pages/access_management/booking_system/domain/models/paginated_bookable_spaces.dart';
import 'package:syncrow_web/pages/space_management_v2/modules/communities/domain/params/load_communities_param.dart';
abstract class BookingSystemService {
Future<PaginatedBookableSpaces> getBookableSpaces({
required LoadCommunitiesParam param,
});
}