import 'package:get/get.dart'; import 'package:marco/helpers/services/api_service.dart'; import 'package:marco/model/service_project/service_projects_list_model.dart'; class ServiceProjectController extends GetxController { var projects = [].obs; var isLoading = false.obs; var searchQuery = ''.obs; RxList get filteredProjects { if (searchQuery.value.isEmpty) return projects; return projects .where((p) => p.name.toLowerCase().contains(searchQuery.value.toLowerCase()) || p.contactPerson.toLowerCase().contains(searchQuery.value.toLowerCase())) .toList() .obs; } Future fetchProjects({int pageNumber = 1, int pageSize = 20}) async { try { isLoading.value = true; final result = await ApiService.getServiceProjectsListApi( pageNumber: pageNumber, pageSize: pageSize); if (result != null && result.data != null) { projects.assignAll(result.data!.data ?? []); } } finally { isLoading.value = false; } } void updateSearch(String query) { searchQuery.value = query; } }