import 'package:get/get.dart'; import 'package:dio/dio.dart'; import '../../../core/network/dio_client.dart'; import '../../../core/utils/app_snackbar.dart'; import '../../../core/utils/logger.dart'; class TenantsManagementController extends GetxController { final Dio _dio = DioClient().client; var isLoading = true.obs; var tenants = >[].obs; @override void onInit() { super.onInit(); fetchTenants(); } Future fetchTenants() async { try { isLoading.value = true; final response = await _dio.get('tenants'); if (response.data['success'] == true) { tenants.value = List>.from(response.data['data']); } } catch (e) { AppLogger.error('Failed to fetch tenants', e); AppSnackbar.showError('خطأ', 'تعذر تحميل المكاتب المحاسبية'); } finally { isLoading.value = false; } } Future updateTenant(String id, Map data) async { try { data['id'] = id; final response = await _dio.post('tenants/update', data: data); if (response.data['success'] == true) { await fetchTenants(); AppSnackbar.showSuccess('نجاح', 'تم تحديث بيانات المكتب'); } } catch (e) { AppLogger.error('Failed to update tenant', e); AppSnackbar.showError('خطأ', 'تعذر تحديث المكتب'); } } Future deleteTenant(String id) async { try { final response = await _dio.post('tenants/delete', data: {'id': id}); if (response.data['success'] == true) { tenants.removeWhere((t) => t['id'] == id); AppSnackbar.showSuccess('نجاح', 'تم حذف المكتب المحاسبي'); } } catch (e) { AppLogger.error('Failed to delete tenant', e); AppSnackbar.showError('خطأ', 'تعذر حذف المكتب'); } } }