import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../../constant/links.dart'; import '../functions/crud.dart'; import '../functions/device_info.dart'; import '../../views/widgets/snackbar.dart'; class StaffController extends GetxController { final CRUD _crud = CRUD(); final formKey = GlobalKey(); // التكست كنترولرز final nameController = TextEditingController(); final phoneController = TextEditingController(); final emailController = TextEditingController(); final passwordController = TextEditingController(); final birthdateController = TextEditingController(); String selectedGender = 'Male'; String selectedRole = 'service'; // 'admin' or 'service' bool isLoading = false; Future registerStaff() async { if (!formKey.currentState!.validate()) return; isLoading = true; update(); try { // ملاحظة: لا نأخذ بصمة جهاز الأدمن هنا، بل نتركها فارغة ليقوم الموظف بربطها عند أول دخول له String fingerprint = ""; var response = await _crud.post( link: AppLink.addStaff, payload: { "name": nameController.text.trim(), "phone": phoneController.text.trim(), "email": emailController.text.trim(), "password": passwordController.text.trim(), "role": selectedRole, "gender": selectedGender, "birthdate": birthdateController.text.trim(), "fingerprint": fingerprint, "site": "main", // القيمة الافتراضية للفرع }, ); if (response != "failure") { mySnackbarSuccess('تمت إضافة الموظف بنجاح'); _clearFields(); Get.back(); } else { mySnackeBarError('فشل في إضافة الموظف. يرجى المحاولة لاحقاً'); } } catch (e) { mySnackeBarError('حدث خطأ: $e'); } finally { isLoading = false; update(); } } void _clearFields() { nameController.clear(); phoneController.clear(); emailController.clear(); passwordController.clear(); birthdateController.clear(); } @override void onClose() { nameController.dispose(); phoneController.dispose(); emailController.dispose(); passwordController.dispose(); birthdateController.dispose(); super.onClose(); } }