import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:siro_admin/constant/links.dart'; import 'package:siro_admin/controller/functions/crud.dart'; import 'package:siro_admin/main.dart'; // للوصول لـ box class AdminRegisterController extends GetxController { final nameCtrl = TextEditingController(); final phoneCtrl = TextEditingController(); final passCtrl = TextEditingController(); final formKey = GlobalKey(); var isLoading = false.obs; Future register() async { if (!formKey.currentState!.validate()) return; isLoading.value = true; try { // جلب البصمة، وإذا لم تكن موجودة يمكن محاولة توليدها أو طلبها String fingerprint = box.read('fingerprint') ?? ''; final response = await CRUD().post( link: '${AppLink.server}/Admin/auth/register.php', payload: { 'name': nameCtrl.text.trim(), 'phone': phoneCtrl.text.trim(), 'password': passCtrl.text.trim(), 'fingerprint': fingerprint, }, ); if (response != 'failure') { if (response['status'] == 'pending') { Get.snackbar('نجاح', response['message'] ?? 'تم تقديم الطلب بنجاح', backgroundColor: Colors.green.withOpacity(0.8), colorText: Colors.white); Future.delayed(const Duration(seconds: 2), () => Get.back()); } else { Get.snackbar('خطأ', 'حدث خطأ غير متوقع', backgroundColor: Colors.red.withOpacity(0.8), colorText: Colors.white); } } } catch (e) { Get.snackbar('خطأ', 'فشل في الاتصال بالخادم', backgroundColor: Colors.red.withOpacity(0.8), colorText: Colors.white); } finally { isLoading.value = false; } } @override void dispose() { nameCtrl.dispose(); phoneCtrl.dispose(); passCtrl.dispose(); super.dispose(); } }