import 'dart:convert'; import 'package:SEFER/constant/box_name.dart'; import 'package:SEFER/constant/links.dart'; import 'package:SEFER/controller/functions/crud.dart'; import 'package:SEFER/controller/home/payment/captain_wallet_controller.dart'; import 'package:SEFER/views/widgets/mydialoug.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; import '../../../main.dart'; import '../../functions/launch.dart'; import '../../notification/notification_captain_controller.dart'; class InviteController extends GetxController { final TextEditingController invitePhoneController = TextEditingController(); List driverInvitationData = []; @override void onInit() { super.onInit(); // fetchDriverStats(); } void fetchDriverStats() async { try { var response = await CRUD().get(link: AppLink.getInviteDriver, payload: { "driverId": box.read(BoxName.driverID), }); if (response != 'failure') { var data = jsonDecode(response); driverInvitationData = data['message']; update(); // print('driverInitationData: $driverInitationData'); } } catch (e) { print('Error fetching driver stats: $e'); } } void onSelectDriverInvitation(int index) async { MyDialog().getDialog( driverInvitationData[index]['countOfInvitDriver'] < 100 ? '${'When'.tr} ${driverInvitationData[index]['invitorName']} ${"complete, you can claim your gift".tr} ' : 'You deserve the gift'.tr, '${driverInvitationData[index]['invitorName']} ${driverInvitationData[index]['countOfInvitDriver']} / 100 ${'Trip'.tr}', () async { if (driverInvitationData[index]['countOfInvitDriver'] < 100) { Get.back(); } else { //claim your gift if (driverInvitationData[index]['isGiftToken'].toString() == '0') { Get.back(); await Get.find() .addDriverWallet('paymentMethod', '500'); // add for invitor too await Get.find().addDriverWalletToInvitor( 'paymentMethod', driverInvitationData[index]['driverInviterId'], '500'); await CRUD().post( link: AppLink.updateInviteDriver, payload: {'id': driverInvitationData[index]['id']}); NotificationCaptainController().addNotificationCaptain( driverInvitationData[index]['driverInviterId'].toString(), "You have got a gift for invitation".tr, '${"You have 500".tr} ${'LE'}', false); } else { Get.back(); MyDialog().getDialog("You have got a gift".tr, "Share the app with another new driver".tr, () { Get.back(); }); } } }, ); } void sendInvite() async { if (invitePhoneController.text.isEmpty) { Get.snackbar('Error', 'Please enter an phone address'.tr); return; } // try { var response = await CRUD().post(link: AppLink.addInviteDriver, payload: { "driverId": box.read(BoxName.driverID), "inviterDriverPhone": '+2${invitePhoneController.text}' }); if (response != 'failure') { var d = jsonDecode(response); Get.snackbar('Success', 'Invite sent successfully'.tr); String message = '${'*SEFER DRIVER CODE*'.tr}\n\n' '${"Use this code in registration".tr}\n' '${"To get a gift for both".tr}\n\n' '${"The period of this code is 1 hour".tr}\n\n' '${'before'.tr} *${d['message']['expirationTime'].toString()}*\n\n' '_*${d['message']['inviteCode'].toString()}*_\n\n' '${"Install our app:".tr}\n' '*Android:* https://play.google.com/store/apps/details?id=com.sefer_driver\n\n\n' '*iOS:* https://apps.apple.com/ae/app/sefer-driver/id6502189302'; launchCommunication( 'whatsapp', '+2${invitePhoneController.text}', message); invitePhoneController.clear(); } else { Get.snackbar('Error', 'Failed to send invite'.tr); } // } catch (e) { // print('Error sending invite: $e'); // Get.snackbar('Error', 'An error occurred'.tr); // } } }