import 'package:flutter/widgets.dart'; import 'package:get/get.dart'; import 'package:sefer_admin1/constant/box_name.dart'; import 'package:sefer_admin1/constant/links.dart'; import 'package:sefer_admin1/controller/firebase/firbase_messge.dart'; import 'package:sefer_admin1/controller/functions/crud.dart'; import 'package:sefer_admin1/main.dart'; import 'package:sefer_admin1/views/widgets/elevated_btn.dart'; import 'package:sefer_admin1/views/widgets/my_textField.dart'; import '../constant/style.dart'; import '../print.dart'; import 'firebase/notification_service.dart'; class NotificationController extends GetxController { final formKey = GlobalKey(); final title = TextEditingController(); final body = TextEditingController(); List tokensDriver = []; List tokensPassengers = []; // getTokensDrivers() async { // await FirebaseMessagesController().loadAllPagesAndSendNotifications(); // } // getTokensPassengers() async { // await FirebaseMessagesController() // .loadAllPagesAndSendNotificationsPassengers(); // } Future sendNotificationDrivers() { return Get.defaultDialog( title: 'send notification'.tr, titleStyle: AppStyle.title, content: Form( key: formKey, child: Column( children: [ Padding( padding: const EdgeInsets.all(8.0), child: MyTextForm( controller: title, label: 'title notification'.tr, hint: 'title notification'.tr, type: TextInputType.name), ), Padding( padding: const EdgeInsets.all(8.0), child: MyTextForm( controller: body, label: 'body notification'.tr, hint: 'body notification'.tr, type: TextInputType.name), ), ], ), ), confirm: MyElevatedButton( title: 'send'.tr, onPressed: () async { // tokensDriver = box.read(BoxName.tokensDrivers)['message']; // Log.print('tokensDriver: ${tokensDriver}'); // if (formKey.currentState!.validate()) { // box.read(BoxName.tokensDrivers)['message'].length; // for (var i = 0; // i < box.read(BoxName.tokensDrivers)['message'].length; // i++) { // // for (var i = 0; i < 2; i++) { // // print(i); // var res = await CRUD() // .post(link: AppLink.addNotificationCaptain, payload: { // "driverID": box // .read(BoxName.tokensDrivers)['message'][i]['id'] // .toString(), // "title": title.text, // "body": body.text, // "isPin": 'unPin', // }); // Log.print( // 'res: ${res}for ${box.read(BoxName.tokensDrivers)['message'][i]['id']}'); // // Log.print('tokensDriver[i]: ${tokensDriver[i]}'); // Future.delayed(const Duration(microseconds: 50)); NotificationService.sendNotification( target: 'drivers', // الإرسال لجميع المشتركين في "service" title: title.text, body: body.text, isTopic: true, category: 'fromAdmin', // فئة توضح نوع الإشعار ); // FirebaseMessagesController().sendNotificationToAnyWithoutData( // title.text, // body.text, // box // .read(BoxName.tokensDrivers)['message'][i]['token'] // .toString(), // 'tone2.wav'); // } Get.back(); // } }), cancel: MyElevatedButton( title: 'cancel', onPressed: () { Get.back(); })); } Future sendNotificationPassengers() { return Get.defaultDialog( title: 'send notification'.tr, titleStyle: AppStyle.title, content: Form( key: formKey, child: Column( children: [ Padding( padding: const EdgeInsets.all(8.0), child: MyTextForm( controller: title, label: 'title notification'.tr, hint: 'title notification'.tr, type: TextInputType.name), ), Padding( padding: const EdgeInsets.all(8.0), child: MyTextForm( controller: body, label: 'body notification'.tr, hint: 'body notification'.tr, type: TextInputType.name), ), ], ), ), confirm: MyElevatedButton( title: 'send'.tr, onPressed: () async { // tokensPassengers = box.read(BoxName.tokensPassengers); // var tokensPassengersData = // box.read(BoxName.tokensPassengers)['data']; // // Debug print to check structure of the 'data' field // print('Tokens Passengers Data: $tokensPassengersData'); // if (tokensPassengersData is List) { // for (var i = 0; i < tokensPassengersData.length; i++) { // if (formKey.currentState!.validate()) { // var res = await CRUD() // .post(link: AppLink.addNotificationPassenger, payload: { // "passenger_id": // tokensPassengersData[i]['passengerID'].toString(), // "title": title.text, // "body": body.text, // }); // Log.print('res: ${res}'); // FirebaseMessagesController() // .sendNotificationToAnyWithoutData( // title.text, // body.text, // tokensPassengersData[i]['token'] // .toString(), // Access token correctly // 'order.wav', // ); // } // } NotificationService.sendNotification( target: 'passengers', // الإرسال لجميع المشتركين في "service" title: title.text, body: body.text, isTopic: true, category: 'fromAdmin', // فئة توضح نوع الإشعار ); Get.back(); // } else { // // Handle the case where 'data' is not a list // print('Data is not a list: $tokensPassengersData'); // } }), cancel: MyElevatedButton( title: 'cancel', onPressed: () { Get.back(); })); } } // يلا دلوقتي! تطبيق سفر جاهز عشان تبدأ تستقبل الطلبات // • افتح التطبيق دلوقتي، واستعد إنك تستقبل طلبات أكتر. كل ما تكون فاتح، فرصتك في الطلبات بتزيد! // 2. خليك فاتح واستقبل طلبات أكتر مع تطبيق سفر // • وجودك متصل في التطبيق هيخليك تستقبل طلبات أكتر. افتح التطبيق دلوقتي وما تفوتش الفرصة! // 3. فرصتك لزيادة دخلك مع تطبيق سفر تبدأ من دلوقتي! // • مجرد إنك تفتح التطبيق مش هيأثر عليك، بالعكس، هيزود فرصتك في طلبات أكتر. افتح التطبيق واشترك دلوقتي! //sms // link sefer driver is https://shorturl.at/IHJcm1. // // ميزات الأمان بعد 500 رحلة: // • “بعد 500 رحلة مع سفر، تحصل على مميزات أمان إضافية لضمان راحتك.” // • “نوفر لك ميزات أمان متقدمة بعد 500 رحلة لتجربة قيادة أكثر أمانًا.” // • “مع 500 رحلة، تحصل على دعم أمني متقدم لتوفير أفضل تجربة قيادة.” // 2. ميزات الصيانة: // • “احصل على خدمات صيانة مجانية بعد عدد معين من الرحلات مع سفر.” // • “استمتع بخدمات صيانة حصرية عند الوصول إلى عدد محدد من الرحلات.” // • “مع سفر، نقدم لك عروض صيانة مميزة لتحافظ على سيارتك في أفضل حال.” // 3. ميزات فتح حسابات البنوك: // • “مع سفر، يمكنك فتح حساب بنكي بسهولة واستفادة من عروض مميزة.” // • “افتح حساب بنكي مع تطبيق سفر واستفد من خدمات مالية حصرية.” // • “نساعدك على فتح حساب بنكي بأفضل العروض بالتعاون مع البنوك المحلية.” // 4. ميزات ورود السيارات ومعارض السيارات الخاصة بنا: // • “استمتع بعروض مميزة لشراء السيارات من معارض سفر الحصرية.” // • “اختر سيارتك المثالية من معارض سفر بأسعار تنافسية وخدمات مميزة.” // • “نقدم لك أفضل عروض السيارات من معارضنا لتسهيل امتلاك سيارتك الجديدة.” // 5. ميزات أوفر كار: // • “أوفر كار من سفر توفر لك سيارات اقتصادية لزيادة دخلك بكفاءة.” // • “مع أوفر كار، يمكنك العمل بسيارات اقتصادية وتحقيق أرباح أكبر.” // • “تطبيق سفر يقدم لك أوفر كار، الخيار الاقتصادي المثالي لزيادة دخلك.” // 6. مستوى الدخل المحدود والطلبات الاقتصادية: // • “لأصحاب الدخل المحدود، وفرنا طلبات اقتصادية تضمن لك زيادة دخلك.” // • “الطلبات الاقتصادية من سفر تساعدك على زيادة دخلك بسهولة وفعالية.” // • “استفد من طلبات اقتصادية تناسب أصحاب الدخل المحدود لزيادة أرباحك.” // 7. طلبات الليل: // • “مع طلبات الليل من سفر، زود دخلك واستفد من فرص إضافية في المساء.” // • “لا تفوت فرصة طلبات الليل مع سفر، زود دخلك في أي وقت.” // • “طلبات الليل من سفر توفر لك فرصًا إضافية لتحقيق دخل أعلى.” // 8. طلبات الكمفورت الأكثر راحة والسيارات المكيفة: // • “قدّم خدمة مريحة مع طلبات الكمفورت من سفر والسيارات المكيفة.” // • “طلبات الكمفورت توفر تجربة راقية للركاب بسيارات مكيفة ومريحة.” // • “مع سفر، سيارات الكمفورت المكيفة تضمن راحة الركاب وزيادة الطلبات.” // 9. طلبات السبيد: // • “استقبل طلبات السبيد مع سفر لتقديم رحلات أسرع وزيادة دخلك.” // • “طلبات السبيد توفر لك فرصة إكمال المزيد من الرحلات في وقت أقل.” // • “مع طلبات السبيد من سفر، تقدم خدمة سريعة وفعالة لزيادة الأرباح.” // 10. الطلبات الثابتة والمعتدلة السعر والنسبة الثابتة 8%: // • “مع نسبة ثابتة 8%، تحصل على أفضل عروض الأسعار مع سفر.” // • “استمتع بنسبة ثابتة 8%، أقل نسبة بين المنافسين لزيادة دخلك.” // • “طلبات سفر الثابتة تضمن لك دخلاً مستقراً بنسبة أقل من 8%.”