import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:SEFER/constant/colors.dart'; import 'package:SEFER/constant/style.dart'; import 'package:SEFER/controller/admin/passenger_admin_controller.dart'; import 'package:SEFER/views/widgets/elevated_btn.dart'; import 'package:SEFER/views/widgets/my_scafold.dart'; import 'package:SEFER/views/widgets/my_textField.dart'; import 'package:SEFER/views/widgets/mycircular.dart'; import 'form_passenger.dart'; import 'passenger_details_page.dart'; class Passengrs extends StatelessWidget { Passengrs({super.key}); final PassengerAdminController passengerAdminController = Get.put(PassengerAdminController()); @override Widget build(BuildContext context) { return MyScafolld( title: 'Passengrs'.tr, isleading: true, body: [ GetBuilder( builder: (passengerAdminController) => Column( children: [ passengerAdminController.isLoading ? const MyCircularProgressIndicator() : Column( children: [ Padding( padding: const EdgeInsets.all(5), child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ passengerAdmin( passengerAdminController, 'Passengers Count', 'countPassenger', ), MyElevatedButton( title: 'Add Prize to Gold Passengers', onPressed: () { var date = DateTime.now(); var day = date.weekday; if (day == 6) { // Saturday is 6 print(day); Get.defaultDialog( title: 'Add Prize to Gold Passengers', titleStyle: AppStyle.title, content: Column( children: [ Text( 'Add Points to their wallet as prize' .tr, style: AppStyle.title, ), Form( key: passengerAdminController .formPrizeKey, child: MyTextForm( controller: passengerAdminController .passengerPrizeController, label: 'Count of prize' .tr, hint: 'Count of prize' .tr, type: TextInputType .number)) ], ), confirm: MyElevatedButton( title: 'Add', onPressed: () async { if (passengerAdminController .formPrizeKey .currentState! .validate()) { passengerAdminController .addPassengerPrizeToWalletSecure(); } }, ), ); } else { Get.defaultDialog( title: 'This day is not allowed', titleStyle: AppStyle.title, middleText: 'Saturday only Allowed day', middleTextStyle: AppStyle.title, confirm: MyElevatedButton( title: 'Ok'.tr, onPressed: () { Get.back(); })); } }) ], ), ), const SizedBox( height: 10, ), formSearchPassengers(), SizedBox( height: Get.height * .5, child: ListView.builder( itemCount: passengerAdminController .passengersData['message'].length, itemBuilder: (context, index) { final user = passengerAdminController .passengersData['message'][index]; return InkWell( onTap: () { Get.to(const PassengerDetailsPage(), arguments: { 'data': user, }); }, child: Padding( padding: const EdgeInsets.all(3), child: Container( decoration: BoxDecoration( border: Border.all(width: 2)), child: ListTile( title: Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ Text( 'Name : ${user['first_name']} ${user['last_name']}', style: AppStyle.title, ), Text( 'Rating : ${user['ratingPassenger']}', style: AppStyle.title, ), ], ), subtitle: Row( mainAxisAlignment: MainAxisAlignment .spaceBetween, children: [ Text( 'Count Trip : ${user['countPassengerRide']}', style: AppStyle.title, ), Text( 'Count Driver Rate : ${user['countDriverRate']}', style: AppStyle.title, ), ], ), ), ), ), ); }, ), ), ], ), ], )) ], ); } Container passengerAdmin(PassengerAdminController passengerAdminController, String title, String jsonField) { return Container( height: Get.height * .1, decoration: BoxDecoration(border: Border.all(width: 2)), child: Padding( padding: const EdgeInsets.all(8.0), child: GestureDetector( onTap: () {}, child: Column( children: [ Text( title.tr, style: AppStyle.title, ), Text( passengerAdminController.passengersData['message'][0][jsonField] .toString(), style: AppStyle.title, ), ], ), ), ), ); } }