// import 'dart:convert';

// import 'package:flutter/material.dart';
// import 'package:get/get.dart';
// import 'package:intaleq_maps/intaleq_maps.dart';

// import 'package:sefer_driver/controller/home/captin/home_captain_controller.dart';
// import 'package:sefer_driver/constant/box_name.dart';
// import 'package:sefer_driver/controller/firebase/firbase_messge.dart';
// import 'package:sefer_driver/main.dart';
// import 'package:sefer_driver/print.dart';
// import 'package:sefer_driver/views/home/Captin/driver_map_page.dart';

// import '../../../../constant/colors.dart';
// import '../../../../constant/links.dart';
// import '../../../../constant/style.dart';
// import '../../../../controller/firebase/notification_service.dart';
// import '../../../../controller/functions/crud.dart';
// import '../../../../controller/functions/launch.dart';
// import '../../../../controller/home/captin/order_request_controller.dart';
// import '../../../widgets/elevated_btn.dart';
// import '../../../widgets/mydialoug.dart';

// class OrderSpeedRequest extends StatelessWidget {
//   OrderSpeedRequest({super.key});

//   final OrderRequestController orderRequestController =
//       Get.put(OrderRequestController());

//   // دالة مساعدة لاستخراج البيانات بأمان (Null Safety)
//   String _getData(int index, {String defaultValue = ''}) {
//     // if (orderRequestController.myList.length > index &&
//     //     orderRequestController.myList[index] != null) {
//     //   return orderRequestController.myList[index].toString();
//     // }
//     return defaultValue;
//   }

//   @override
//   Widget build(BuildContext context) {
//     return GetBuilder<OrderRequestController>(
//       builder: (controller) {
//         // --- استخراج البيانات بشكل نظيف ---
//         final String price =
//             double.tryParse(_getData(2))?.toStringAsFixed(2) ?? 'N/A';
//         final bool isComfortTrip = _getData(31) == 'Comfort';
//         final String carType = _getData(31).tr;

//         final String pickupName = _getData(12);
//         final String pickupDetails = '(${_getData(11)})';
//         final String pickupFullAddress = _getData(29);
//         final String dropoffName = _getData(5);
//         final String dropoffDetails = '(${_getData(4)})';
//         final String dropoffFullAddress = _getData(30);

//         final String passengerName = _getData(8);
//         final String passengerRating = _getData(33);
//         final bool isVisaPayment = _getData(13) == 'true';
//         final bool hasSteps = _getData(20) == 'haveSteps';

//         final String mapUrl =
//             'https://www.google.com/maps/dir/${_getData(0)}/${_getData(1)}/';
//         final String rideId = _getData(16);

//         return Scaffold(
//           appBar: AppBar(
//             title: Text('Speed Order'.tr),
//             leading: IconButton(
//               icon: const Icon(Icons.arrow_back),
//               onPressed: () => Get.back(),
//             ),
//             backgroundColor: AppColor.primaryColor,
//             elevation: 2.0,
//           ),
//           backgroundColor: AppColor.secondaryColor ?? Colors.grey[100],
//           body: SafeArea(
//             child: Padding(
//               padding:
//                   const EdgeInsets.symmetric(horizontal: 10.0, vertical: 8.0),
//               child: Column(
//                 children: [
//                   // 1. قسم الخريطة (ارتفاع ثابت)
//                   SizedBox(
//                     height: Get.height * 0.28,
//                     child: ClipRRect(
//                       borderRadius: BorderRadius.circular(15.0),
//                       child: GoogleMap(
//                         initialCameraPosition: CameraPosition(
//                           zoom: 12,
//                           target: Get.find<HomeCaptainController>().myLocation,
//                         ),
//                         cameraTargetBounds:
//                             CameraTargetBounds(controller.bounds),
//                         myLocationButtonEnabled: false,
//                         trafficEnabled: false,
//                         buildingsEnabled: false,
//                         mapToolbarEnabled: false,
//                         myLocationEnabled: true,
//                         markers: {
//                           Marker(
//                               markerId: MarkerId('MyLocation'.tr),
//                               position: LatLng(controller.latPassengerLocation,
//                                   controller.lngPassengerLocation),
//                               icon: controller.startIcon),
//                           Marker(
//                               markerId: MarkerId('Destination'.tr),
//                               position: LatLng(
//                                   controller.latPassengerDestination,
//                                   controller.lngPassengerDestination),
//                               icon: controller.endIcon),
//                         },
//                         polylines: {
//                           Polyline(
//                             zIndex: 1,
//                             consumeTapEvents: true,
//                             geodesic: true,
//                             endCap: Cap.buttCap,
//                             startCap: Cap.buttCap,
//                             visible: true,
//                             polylineId: const PolylineId('routeOrder'),
//                             points: controller.pointsDirection,
//                             color: AppColor.primaryColor,
//                             width: 3,
//                           ),
//                         },
//                       ),
//                     ),
//                   ),

//                   const SizedBox(height: 8),

//                   // 2. بطاقة السعر
//                   _buildPriceCard(price, carType, isComfortTrip),

//                   const SizedBox(height: 8),

//                   // 3. التفاصيل القابلة للتمرير (تأخذ المساحة المتبقية)
//                   Expanded(
//                     child: SingleChildScrollView(
//                       physics: const BouncingScrollPhysics(),
//                       child: Column(
//                         mainAxisSize: MainAxisSize.min,
//                         children: [
//                           _buildLocationCard(
//                             icon: Icons.arrow_circle_up,
//                             iconColor: AppColor.greenColor,
//                             title: pickupName,
//                             subtitle: pickupDetails,
//                             fullAddress: pickupFullAddress,
//                           ),
//                           const SizedBox(height: 8),
//                           _buildLocationCard(
//                             icon: Icons.arrow_circle_down,
//                             iconColor: AppColor.redColor,
//                             title: dropoffName,
//                             subtitle: dropoffDetails,
//                             fullAddress: dropoffFullAddress,
//                           ),
//                           const SizedBox(height: 8),
//                           _buildInfoCard(isVisaPayment, hasSteps, mapUrl),
//                           const SizedBox(height: 8),
//                           _buildPassengerCard(passengerName, passengerRating),
//                         ],
//                       ),
//                     ),
//                   ),

//                   // 4. الأزرار والمؤقت (مثبتة في الأسفل)
//                   Padding(
//                     padding: const EdgeInsets.only(top: 8.0),
//                     child: Row(
//                       mainAxisAlignment: MainAxisAlignment.spaceBetween,
//                       children: [
//                         // زر القبول
//                         Expanded(
//                           child: MyElevatedButton(
//                             kolor: AppColor.greenColor,
//                             title: 'Accept Order'.tr,
//                             onPressed: () => _handleAcceptOrder(controller),
//                           ),
//                         ),
//                         const SizedBox(width: 10),

//                         // المؤقت
//                         GetBuilder<OrderRequestController>(
//                           id: 'timerUpdate',
//                           builder: (timerCtrl) {
//                             final isNearEnd = timerCtrl.remainingTimeSpeed <= 5;
//                             return SizedBox(
//                               width: 60,
//                               height: 60,
//                               child: Stack(
//                                 alignment: Alignment.center,
//                                 children: [
//                                   CircularProgressIndicator(
//                                     value: timerCtrl.progressSpeed,
//                                     color: isNearEnd
//                                         ? Colors.redAccent
//                                         : AppColor.primaryColor,
//                                     strokeWidth: 5,
//                                     backgroundColor: Colors.grey.shade300,
//                                   ),
//                                   Text(
//                                     '${timerCtrl.remainingTimeSpeed}',
//                                     style: AppStyle.headTitle2.copyWith(
//                                       color: isNearEnd
//                                           ? Colors.redAccent
//                                           : AppColor.writeColor ?? Colors.black,
//                                     ),
//                                   ),
//                                 ],
//                               ),
//                             );
//                           },
//                         ),

//                         const SizedBox(width: 10),
//                         // زر الرفض
//                         Expanded(
//                           child: MyElevatedButton(
//                             title: 'Refuse Order'.tr,
//                             onPressed: () =>
//                                 _handleRefuseOrder(controller, rideId),
//                             kolor: AppColor.redColor,
//                           ),
//                         ),
//                       ],
//                     ),
//                   ),
//                 ],
//               ),
//             ),
//           ),
//         );
//       },
//     );
//   }

//   // --- WIDGET BUILDERS (لبناء الواجهة بشكل نظيف) ---

//   // Widget _buildPriceCard(String price, String carType, bool isComfortTrip) {
//   //   return Card(
//   //     elevation: 3,
//   //     shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)),
//   //     child: Padding(
//   //       padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 16.0),
//   //       child: Row(
//   //         mainAxisAlignment: MainAxisAlignment.spaceBetween,
//   //         children: [
//   //           Text(
//   //             price,
//   //             style: AppStyle.headTitle.copyWith(
//   //                 color: AppColor.primaryColor,
//   //                 fontWeight: FontWeight.bold,
//   //                 fontSize: 28),
//   //           ),
//   //           Column(
//   //             crossAxisAlignment: CrossAxisAlignment.end,
//   //             children: [
//   //               Text(
//   //                 carType,
//   //                 style: AppStyle.title.copyWith(
//   //                     color: AppColor.greenColor, fontWeight: FontWeight.bold),
//   //               ),
//   //               if (isComfortTrip)
//   //                 Row(
//   //                   children: [
//   //                     const Icon(Icons.ac_unit,
//   //                         color: AppColor.blueColor, size: 18),
//   //                     const SizedBox(width: 4),
//   //                     Text('Air condition Trip'.tr,
//   //                         style: AppStyle.subtitle.copyWith(fontSize: 13)),
//   //                   ],
//   //                 ),
//   //             ],
//   //           ),
//   //         ],
//   //       ),
//   //     ),
//   //   );
//   // }

//   // Widget _buildInfoCard(bool isVisaPayment, bool hasSteps, String mapUrl) {
//   //   return Card(
//   //     elevation: 2,
//   //     shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
//   //     child: Padding(
//   //       padding: const EdgeInsets.all(10.0),
//   //       child: Row(
//   //         mainAxisAlignment: MainAxisAlignment.spaceBetween,
//   //         children: [
//   //           Row(
//   //             children: [
//   //               Icon(
//   //                 isVisaPayment ? Icons.credit_card : Icons.payments_outlined,
//   //                 color: isVisaPayment
//   //                     ? AppColor.deepPurpleAccent
//   //                     : AppColor.greenColor,
//   //                 size: 24,
//   //               ),
//   //               const SizedBox(width: 8),
//   //               Text(
//   //                 isVisaPayment ? 'Visa'.tr : 'Cash'.tr,
//   //                 style: AppStyle.title.copyWith(fontWeight: FontWeight.w600),
//   //               ),
//   //             ],
//   //           ),
//   //           if (hasSteps)
//   //             Expanded(
//   //               child: Row(
//   //                 mainAxisAlignment: MainAxisAlignment.center,
//   //                 children: [
//   //                   const Icon(Icons.format_list_numbered_rtl_outlined,
//   //                       color: AppColor.bronze, size: 24),
//   //                   const SizedBox(width: 4),
//   //                   Flexible(
//   //                       child: Text(
//   //                     'Trip has Steps'.tr,
//   //                     style: AppStyle.title
//   //                         .copyWith(color: AppColor.bronze, fontSize: 13),
//   //                     overflow: TextOverflow.ellipsis,
//   //                   )),
//   //                 ],
//   //               ),
//   //             ),
//   //           TextButton.icon(
//   //             style: TextButton.styleFrom(
//   //               padding: EdgeInsets.zero,
//   //               tapTargetSize: MaterialTapTargetSize.shrinkWrap,
//   //               alignment: Alignment.centerRight,
//   //             ),
//   //             onPressed: () => showInBrowser(mapUrl),
//   //             icon: const Icon(Icons.directions_outlined,
//   //                 color: AppColor.blueColor, size: 20),
//   //             label: Text("Directions".tr,
//   //                 style: AppStyle.subtitle
//   //                     .copyWith(color: AppColor.blueColor, fontSize: 13)),
//   //           ),
//   //         ],
//   //       ),
//   //     ),
//   //   );
//   // }

//   // Widget _buildPassengerCard(String name, String rating) {
//   //   return Card(
//   //     elevation: 2,
//   //     shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
//   //     child: Padding(
//   //       padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 10.0),
//   //       child: Row(
//   //         children: [
//   //           const Icon(Icons.person_outline,
//   //               color: AppColor.greyColor, size: 22),
//   //           const SizedBox(width: 10),
//   //           Expanded(
//   //             child: Text(
//   //               name,
//   //               style: AppStyle.title,
//   //               overflow: TextOverflow.ellipsis,
//   //             ),
//   //           ),
//   //           const SizedBox(width: 10),
//   //           const Icon(Icons.star_rounded, color: Colors.amber, size: 20),
//   //           Text(
//   //             rating,
//   //             style: AppStyle.title.copyWith(fontWeight: FontWeight.bold),
//   //           ),
//   //         ],
//   //       ),
//   //     ),
//   //   );
//   // }

//   // Widget _buildLocationCard(
//       {required IconData icon,
//       required Color iconColor,
//       required String title,
//       required String subtitle,
//       required String fullAddress}) {
//     return Card(
//       elevation: 2,
//       shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
//       margin: const EdgeInsets.symmetric(vertical: 4),
//       child: Padding(
//         padding: const EdgeInsets.all(10.0),
//         child: Row(
//           crossAxisAlignment: CrossAxisAlignment.start,
//           children: [
//             Icon(icon, color: iconColor, size: 28),
//             const SizedBox(width: 12),
//             Expanded(
//               child: Column(
//                 crossAxisAlignment: CrossAxisAlignment.start,
//                 children: [
//                   Text(
//                     "$title $subtitle".trim(),
//                     style: AppStyle.title.copyWith(fontWeight: FontWeight.w600),
//                     maxLines: 1,
//                     overflow: TextOverflow.ellipsis,
//                   ),
//                   if (fullAddress.isNotEmpty) ...[
//                     const SizedBox(height: 3),
//                     Text(
//                       fullAddress,
//                       style: AppStyle.subtitle
//                           .copyWith(fontSize: 13, color: AppColor.greyColor),
//                       maxLines: 2,
//                       overflow: TextOverflow.ellipsis,
//                     ),
//                   ]
//                 ],
//               ),
//             ),
//           ],
//         ),
//       ),
//     );
//   }

// //   // --- منطق التعامل مع الطلبات (Logic Handlers) ---

// //   Future<void> _handleAcceptOrder(OrderRequestController controller) async {
// //     // 1. محاولة تحديث الحالة في السيرفر
// //     // 1. إظهار لودينج وإيقاف التفاعل
// //     Get.dialog(const Center(child: CircularProgressIndicator()),
// //         barrierDismissible: false);
// //     // هذا الرابط يجب أن يكون لملف PHP الآمن الذي يحتوي على rowCount
// //     var res = await CRUD().post(link: AppLink.updateStausFromSpeed, payload: {
// //       'id': (controller.myList[16]),
// //       'rideTimeStart': DateTime.now().toString(),
// //       'status': 'Apply',
// //       'driver_id': box.read(BoxName.driverID),
// //     });
// //     Log.print('oreder response update: ${res}');
// // // 2. إغلاق اللودينج بمجرد وصول الرد
// //     Get.back(); // إغلاق اللودينج
// //     // 2. معالجة الفشل (Robust Error Handling)
// //     // نفحص إذا كانت النتيجة فشل سواء وصلت كنص أو كـ JSON
// //     bool isFailed = false;
// //     if (res == 'failure') isFailed = true;

// //     if (res is Map && res['status'] == 'failure') isFailed = true;

// //     if (isFailed) {
// //       MyDialog().getDialog(
// //           "This ride is already applied by another driver.".tr, '', () {
// //         Get.back(); // يغلق نافذة التنبيه (Dialog)
// //         Get.back(); // يغلق صفحة الطلب بالكامل (Screen) ويرجع للخريطة
// //       });
// //       return; // توقف تام للكود هنا، لن يتم تنفيذ أي سطر بالأسفل
// //     }

// //     // 3. معالجة النجاح (Success Handling)

// //     // إيقاف المؤقت وتحديث الواجهة
// //     controller.endTimer();
// //     controller.changeApplied();

// //     // تحديث حالة السائق في التطبيق
// //     Get.put(HomeCaptainController()).changeRideId();
// //     box.write(BoxName.statusDriverLocation, 'on');

// //     // *هام*: تم حذف استدعاء الـ API الثاني المكرر هنا لأنه غير ضروري وقد يسبب مشاكل

// //     // تسجيل الطلب في سجل السائقين (Driver History)
// //     CRUD().postFromDialogue(link: AppLink.addDriverOrder, payload: {
// //       'driver_id': (controller.myList[6].toString()),
// //       'order_id': (controller.myList[16].toString()),
// //       'status': 'Apply'
// //     });

// //     // إرسال إشعار للراكب
// //     List<String> bodyToPassenger = [
// //       controller.myList[6].toString(),
// //       controller.myList[8].toString(),
// //       controller.myList[9].toString(),
// //     ];

// //     NotificationService.sendNotification(
// //       target: controller.myList[9].toString(),
// //       title: "Accepted Ride".tr,
// //       body: 'your ride is Accepted'.tr,
// //       isTopic: false,
// //       tone: 'start',
// //       driverList: bodyToPassenger,
// //       category: 'Accepted Ride',
// //     );

// //     // حفظ البيانات في الصندوق (Box) للانتقال للصفحة التالية
// //     box.write(BoxName.rideArguments, {
// //       'passengerLocation': controller.myList[0].toString(),
// //       'passengerDestination': controller.myList[1].toString(),
// //       'Duration': controller.myList[4].toString(),
// //       'totalCost': controller.myList[26].toString(),
// //       'Distance': controller.myList[5].toString(),
// //       'name': controller.myList[8].toString(),
// //       'phone': controller.myList[10].toString(),
// //       'email': controller.myList[28].toString(),
// //       'WalletChecked': controller.myList[13].toString(),
// //       'tokenPassenger': controller.myList[9].toString(),
// //       'direction':
// //           'https://www.google.com/maps/dir/${controller.myList[0]}/${controller.myList[1]}/',
// //       'DurationToPassenger': controller.myList[15].toString(),
// //       'rideId': (controller.myList[16].toString()),
// //       'passengerId': (controller.myList[7].toString()),
// //       'driverId': (controller.myList[18].toString()),
// //       'durationOfRideValue': controller.myList[19].toString(),
// //       'paymentAmount': controller.myList[2].toString(),
// //       'paymentMethod':
// //           controller.myList[13].toString() == 'true' ? 'visa' : 'cash',
// //       'isHaveSteps': controller.myList[20].toString(),
// //       'step0': controller.myList[21].toString(),
// //       'step1': controller.myList[22].toString(),
// //       'step2': controller.myList[23].toString(),
// //       'step3': controller.myList[24].toString(),
// //       'step4': controller.myList[25].toString(),
// //       'passengerWalletBurc': controller.myList[26].toString(),
// //       'timeOfOrder': DateTime.now().toString(),
// //       'totalPassenger': controller.myList[2].toString(),
// //       'carType': controller.myList[31].toString(),
// //       'kazan': controller.myList[32].toString(),
// //       'startNameLocation': controller.myList[29].toString(),
// //       'endNameLocation': controller.myList[30].toString(),
// //     });

// //     // الانتقال لصفحة تتبع الراكب
// //     Get.back(); // يغلق صفحة الطلب الحالية
// //     Get.to(() => PassengerLocationMapPage(),
// //         arguments: box.read(BoxName.rideArguments));
// //     Log.print(
// //         'box.read(BoxName.rideArguments): ${box.read(BoxName.rideArguments)}');
// //   }

// //   void _handleRefuseOrder(OrderRequestController controller, String rideId) {
//     controller.endTimer();
//     // controller.refuseOrder(rideId);

//     // تسجيل الرفض في الإشعارات المحلية للسائق
//     controller.addRideToNotificationDriverString(
//         rideId,
//         _getData(29),
//         _getData(30),
//         '${DateTime.now().year}-${DateTime.now().month}-${DateTime.now().day}',
//         '${DateTime.now().hour}:${DateTime.now().minute}',
//         _getData(2),
//         _getData(7),
//         'wait',
//         _getData(31),
//         _getData(33),
//         _getData(2),
//         _getData(5),
//         _getData(4));

//     // الخروج من الصفحة بعد الرفض
//     Get.back();
//   }
// // }
