import '../entities/zone.dart'; import '../repositories/zone_repository.dart'; class GetAllZonesUsecase { final ZoneRepository repository; GetAllZonesUsecase(this.repository); static const int _pageSize = 100; Future> call() async { final List allZones = []; int page = 0; while (true) { final zones = await repository.getAllZones(page, _pageSize); if (zones == null || zones.isEmpty) break; allZones.addAll(zones); // если пришло меньше, чем размер страницы — это последняя страница if (zones.length < _pageSize) break; page++; } return allZones; } }