import 'package:get/get.dart'; import '../../constant/links.dart'; import '../../views/widgets/snackbar.dart'; import '../functions/crud.dart'; class QualityController extends GetxController { bool isLoading = false; List driversBlacklist = []; List passengersBlacklist = []; Map scorecardData = {}; Future fetchBlacklist() async { isLoading = true; update(); try { var res = await CRUD().post( link: AppLink.blacklistManager, payload: {"action_type": "get_all"}, ); if (res is Map && res['status'] == 'success') { driversBlacklist = res['message']['drivers'] ?? []; passengersBlacklist = res['message']['passengers'] ?? []; } else { mySnackbarError("Failed to fetch blacklist"); } } catch (e) { mySnackbarError("Network error"); } finally { isLoading = false; update(); } } Future unblockDriver(String phone) async { try { var res = await CRUD().post( link: AppLink.blacklistManager, payload: { "action_type": "unblock_driver", "phone": phone, }, ); if (res is Map && res['status'] == 'success') { mySnackbarSuccess("Driver unblocked successfully"); fetchBlacklist(); // Refresh } else { mySnackbarError(res['message'] ?? "Failed to unblock driver"); } } catch (e) { mySnackbarError("Network error"); } } Future unblockPassenger(String phoneNormalized) async { try { var res = await CRUD().post( link: AppLink.blacklistManager, payload: { "action_type": "unblock_passenger", "phone_normalized": phoneNormalized, }, ); if (res is Map && res['status'] == 'success') { mySnackbarSuccess("Passenger unblocked successfully"); fetchBlacklist(); // Refresh } else { mySnackbarError(res['message'] ?? "Failed to unblock passenger"); } } catch (e) { mySnackbarError("Network error"); } } Future fetchDriverScorecard(String driverId) async { isLoading = true; update(); try { var res = await CRUD().post( link: AppLink.driverScorecard, payload: {"driver_id": driverId}, ); if (res is Map && res['status'] == 'success') { scorecardData = res['message']; } else { mySnackbarError("Failed to fetch scorecard"); scorecardData = {}; } } catch (e) { mySnackbarError("Network error"); scorecardData = {}; } finally { isLoading = false; update(); } } }