import 'package:hmg_patient_app/core/enum/viewstate.dart';
import 'package:hmg_patient_app/core/model/er/PatientER.dart';
import 'package:hmg_patient_app/core/model/er/PatientER_RC.dart';
import 'package:hmg_patient_app/core/model/hospitals/hospitals_model.dart';
import 'package:hmg_patient_app/core/viewModels/er/am_request_view_model.dart';
import 'package:hmg_patient_app/core/viewModels/project_view_model.dart';
import 'package:hmg_patient_app/models/Appointments/AppoimentAllHistoryResultList.dart';
import 'package:hmg_patient_app/models/ambulanceRequest/locationDetails.dart';
import 'package:hmg_patient_app/theme/colors.dart';
import 'package:hmg_patient_app/uitl/ProgressDialog.dart';
import 'package:hmg_patient_app/uitl/app_toast.dart';
import 'package:hmg_patient_app/uitl/date_uitl.dart';
import 'package:hmg_patient_app/uitl/gif_loader_dialog_utils.dart';
import 'package:hmg_patient_app/uitl/location_util.dart';
import 'package:hmg_patient_app/uitl/translations_delegate_base.dart';
import 'package:hmg_patient_app/uitl/utils_new.dart';
import 'package:hmg_patient_app/widgets/buttons/defaultButton.dart';
import 'package:hmg_patient_app/widgets/data_display/medical/doctor_card.dart';
import 'package:hmg_patient_app/widgets/dialogs/radio_selection_dialog.dart';
import 'package:hmg_patient_app/widgets/others/app_scaffold_widget.dart';
import 'package:hmg_patient_app/widgets/pickupLocation/PickupLocationFromMap.dart';
import 'package:hmg_patient_app/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:provider/provider.dart';

import '../AvailableAppointmentsPage.dart';

enum HaveAppointment { YES, NO }

class PickupLocation extends StatefulWidget {
  final Function changeCurrentTab;
  final PatientER patientER;
  final PatientER_RC patientER_RC;
  final AmRequestViewModel amRequestViewModel;

  PickupLocation({Key? key, required this.changeCurrentTab, required this.patientER, required this.patientER_RC, required this.amRequestViewModel});

  @override
  _PickupLocationState createState() => _PickupLocationState();
}

class _PickupLocationState extends State<PickupLocation> {
  bool _isInsideHome = false;
  HaveAppointment _haveAppointment = HaveAppointment.NO;

  // double _latitude;
  // double _longitude;
  AppoitmentAllHistoryResultList? myAppointment;
  HospitalsModel? _selectedHospital;
  LocationDetails? _result;

  LocationUtils? locationUtils;
  late ProjectViewModel projectViewModel;

  @override
  void initState() {
    super.initState();
    locationUtils = new LocationUtils(isShowConfirmDialog: true, context: context);
    WidgetsBinding.instance.addPostFrameCallback((_) => locationUtils!.getCurrentLocation());
    setState(() {});
  }

  // _getCurrentLocation() async {
  //   await Geolocator.getLastKnownPosition().then((value) {
  //     _latitude = value.latitude;
  //     _longitude = value.longitude;
  //   }).catchError((e) {
  //     _longitude = 0;
  //     _latitude = 0;
  //   });
  // }

  @override
  Widget build(BuildContext context) {
    projectViewModel = Provider.of(context);
    return AppScaffold(
      isShowAppBar: false,
      isShowDecPage: false,
      body: SingleChildScrollView(
        physics: BouncingScrollPhysics(),
        child: Container(
          margin: EdgeInsets.only(left: 12, right: 12, top: 12),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              if (widget.patientER_RC.transportationDetails!.direction == 0)
                Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Text(TranslationBase.of(context).pickupLocation, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
                    SizedBox(
                      height: 15,
                    ),
                    Container(
                      padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
                      alignment: Alignment.center,
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(15),
                        color: Colors.white,
                        border: Border.all(
                          color: Color(0xffefefef),
                          width: 1,
                        ),
                      ),
                      child: InkWell(
                        onTap: () {
                          if (projectViewModel.latitude != null && projectViewModel.longitude != null) {
                            Navigator.push(
                              context,
                              FadePage(
                                  page: PickupLocationFromMap(
                                latitude: projectViewModel.latitude ?? 0,
                                longitude: projectViewModel.longitude ?? 0,
                                onPick: (value) {
                                  setState(() {
                                    _result = value;
                                  });
                                },
                              )),
                            );
                          } else {
                            locationUtils!.getCurrentLocation();
                          }
                        },
                        child: Row(
                          children: [
                            Expanded(
                              child: Column(
                                crossAxisAlignment: CrossAxisAlignment.start,
                                children: [
                                  Text(
                                    TranslationBase.of(context).selectMap,
                                    style: TextStyle(
                                      fontSize: 11,
                                      fontWeight: FontWeight.w600,
                                      color: Color(0xff2B353E),
                                      letterSpacing: -0.44,
                                    ),
                                  ),
                                  Text(
                                    getSelectFromMapName(context),
                                    style: TextStyle(
                                      fontSize: 14,
                                      height: 21 / 14,
                                      fontWeight: FontWeight.w400,
                                      color: Color(0xff2B353E),
                                      letterSpacing: -0.44,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            Icon(Icons.arrow_drop_down),
                          ],
                        ),
                      ),
                    ),
                    SizedBox(
                      height: 12,
                    ),
                    Text(TranslationBase.of(context).pickupSpot, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
                    SizedBox(
                      height: 5,
                    ),
                    InkWell(
                      onTap: () {
                        setState(() {
                          _isInsideHome = !_isInsideHome;
                        });
                      },
                      child: Container(
                        child: ListTile(
                          contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
                          title: Row(
                            children: [
                              Checkbox(
                                value: _isInsideHome,
                                onChanged: (value) {
                                  setState(() {
                                    _isInsideHome = value!;
                                  });
                                },
                              ),
                              Text(
                                TranslationBase.of(context).insideHome,
                                style: TextStyle(
                                  fontSize: 12.0,
                                  letterSpacing: -0.48,
                                  fontWeight: FontWeight.w600,
                                ),
                              ),
                            ],
                          ),
                        ),
                      ),
                    ),
                    SizedBox(
                      height: 12,
                    ),
                    Text(TranslationBase.of(context).haveAppo, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
                    SizedBox(
                      height: 5,
                    ),
                    Row(
                      children: [
                        Expanded(
                          child: InkWell(
                            onTap: () {
                              if (myAppointment == null) {
                                getAppointment();
                                setState(() {
                                  _haveAppointment = HaveAppointment.YES;
                                });
                              }
                            },
                            child: Container(
                              child: ListTile(
                                contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
                                title: Row(
                                  children: [
                                    Radio(
                                      value: HaveAppointment.YES,
                                      groupValue: _haveAppointment,
                                      onChanged: (value) {
                                        if (myAppointment == null) {
                                          getAppointment();
                                          setState(() {
                                            _haveAppointment = value!;
                                          });
                                        }
                                      },
                                    ),
                                    Text(
                                      TranslationBase.of(context).yes,
                                      style: TextStyle(
                                        fontSize: 12.0,
                                        letterSpacing: -0.48,
                                        fontWeight: FontWeight.w600,
                                      ),
                                    ),
                                  ],
                                ),
                              ),
                            ),
                          ),
                        ),
                        Expanded(
                          child: InkWell(
                            onTap: () {
                              setState(() {
                                _haveAppointment = HaveAppointment.NO;
                                myAppointment = AppoitmentAllHistoryResultList();
                              });
                            },
                            child: Container(
                              child: ListTile(
                                contentPadding: EdgeInsets.only(left: 0.0, right: 0.0),
                                title: Row(
                                  children: [
                                    Radio(
                                      value: HaveAppointment.NO,
                                      groupValue: _haveAppointment,
                                      onChanged: (value) {
                                        setState(() {
                                          _haveAppointment = value!;
                                          myAppointment = AppoitmentAllHistoryResultList();
                                        });
                                      },
                                    ),
                                    Text(
                                      TranslationBase.of(context).no,
                                      style: TextStyle(
                                        fontSize: 12.0,
                                        letterSpacing: -0.48,
                                        fontWeight: FontWeight.w600,
                                      ),
                                    ),
                                  ],
                                ),
                              ),
                            ),
                          ),
                        ),
                      ],
                    ),
                    if (myAppointment != null)
                      Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          SizedBox(
                            height: 12,
                          ),
                          DoctorCard(
                              isInOutPatient: myAppointment!.isInOutPatient,
                              name: myAppointment!.doctorTitle! + " " + myAppointment!.doctorNameObj!,
                              profileUrl: myAppointment!.doctorImageURL,
                              subName: myAppointment!.clinicName,
                              isLiveCareAppointment: myAppointment!.isLiveCareAppointment,
                              date: DateUtil.convertStringToDate(myAppointment!.appointmentDate!),
                              isSortByClinic: false,
                              rating: myAppointment!.actualDoctorRate! + 0.0,
                              appointmentTime: myAppointment!.isLiveCareAppointment!
                                  ? DateUtil.convertStringToDate(myAppointment!.appointmentDate!).toString().split(" ")[1].substring(0, 5)
                                  : myAppointment!.startTime!.substring(0, 5),
                              remainingTimeInMinutes: null),
                        ],
                      ),
                    SizedBox(
                      height: 12,
                    ),
                    if (_haveAppointment == HaveAppointment.NO) Text(TranslationBase.of(context).dropoffLocation, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
                    SizedBox(
                      height: 8,
                    ),
                    if (_haveAppointment == HaveAppointment.NO)
                      Container(
                        padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
                        alignment: Alignment.center,
                        decoration: BoxDecoration(
                          borderRadius: BorderRadius.circular(12),
                          color: Colors.white,
                          border: Border.all(
                            color: Color(0xffefefef),
                            width: 1,
                          ),
                        ),
                        child: InkWell(
                          onTap: () {
                            confirmSelectHospitalDialog(widget.amRequestViewModel.hospitals);
                          },
                          child: Row(
                            children: [
                              Expanded(
                                child: Column(
                                  crossAxisAlignment: CrossAxisAlignment.start,
                                  children: [
                                    Text(
                                      TranslationBase.of(context).selectHospital,
                                      style: TextStyle(
                                        fontSize: 11,
                                        fontWeight: FontWeight.w600,
                                        color: Color(0xff2B353E),
                                        letterSpacing: -0.44,
                                      ),
                                    ),
                                    Text(
                                      getHospitalName(""),
                                      style: TextStyle(
                                        fontSize: 14,
                                        height: 21 / 14,
                                        fontWeight: FontWeight.w400,
                                        color: Color(0xff2B353E),
                                        letterSpacing: -0.44,
                                      ),
                                    ),
                                  ],
                                ),
                              ),
                              Icon(Icons.arrow_drop_down),
                            ],
                          ),
                        ),
                      ),
                  ],
                ),
              if (widget.patientER_RC.transportationDetails!.direction == 1)
                Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Text(TranslationBase.of(context).pickupLocation, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
                    SizedBox(
                      height: 15,
                    ),
                    Container(
                      padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
                      alignment: Alignment.center,
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(12),
                        color: Colors.white,
                        border: Border.all(
                          color: Color(0xffefefef),
                          width: 1,
                        ),
                      ),
                      child: InkWell(
                        onTap: () {
                          confirmSelectHospitalDialog(widget.amRequestViewModel.hospitals);
                        },
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: [
                            Expanded(
                              child: Column(
                                crossAxisAlignment: CrossAxisAlignment.start,
                                children: [
                                  Text(
                                    TranslationBase.of(context).selectHospital,
                                    style: TextStyle(
                                      fontSize: 11,
                                      fontWeight: FontWeight.w600,
                                      color: Color(0xff2B353E),
                                      letterSpacing: -0.44,
                                    ),
                                  ),
                                  Text(
                                    getHospitalName(""),
                                    style: TextStyle(
                                      fontSize: 14,
                                      height: 21 / 14,
                                      fontWeight: FontWeight.w400,
                                      color: Color(0xff2B353E),
                                      letterSpacing: -0.44,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            Icon(
                              Icons.arrow_drop_down,
                              size: 24,
                              color: Colors.black,
                            )
                          ],
                        ),
                      ),
                    ),
                    SizedBox(
                      height: 12,
                    ),
                    Text(TranslationBase.of(context).dropoffLocation, style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
                    SizedBox(
                      height: 8,
                    ),
                    Container(
                      padding: EdgeInsets.only(left: 16, right: 16, bottom: 15, top: 15),
                      alignment: Alignment.center,
                      decoration: BoxDecoration(
                        borderRadius: BorderRadius.circular(12),
                        color: Colors.white,
                        border: Border.all(
                          color: Color(0xffefefef),
                          width: 1,
                        ),
                      ),
                      child: InkWell(
                        onTap: () {
                          if (projectViewModel.latitude != null && projectViewModel.longitude != null) {
                            Navigator.push(
                              context,
                              FadePage(
                                page: PickupLocationFromMap(
                                  latitude: projectViewModel.latitude,
                                  longitude: projectViewModel.longitude,
                                  onPick: (value) {
                                    setState(() {
                                      _result = value;
                                    });
                                  },
                                ),
                              ),
                            );
                          } else {
                            locationUtils!.getCurrentLocation();
                          }
                        },
                        child: Row(
                          children: [
                            Expanded(
                              child: Column(
                                crossAxisAlignment: CrossAxisAlignment.start,
                                children: [
                                  Text(
                                    TranslationBase.of(context).selectMap,
                                    style: TextStyle(
                                      fontSize: 11,
                                      fontWeight: FontWeight.w600,
                                      color: Color(0xff2B353E),
                                      letterSpacing: -0.44,
                                    ),
                                  ),
                                  Text(
                                    getSelectFromMapName(context),
                                    style: TextStyle(
                                      fontSize: 14,
                                      height: 21 / 14,
                                      fontWeight: FontWeight.w400,
                                      color: Color(0xff2B353E),
                                      letterSpacing: -0.44,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            Icon(Icons.arrow_drop_down),
                          ],
                        ),
                      ),
                    ),
                  ],
                ),
              // SizedBox(
              //   height: 45,
              // ),
              // if (myAppointment != null)
              //   SizedBox(
              //     height: 100,
              //   ),
              Container(
                margin: EdgeInsets.only(top: 12),
                decoration: cardRadius(12),
                padding: EdgeInsets.all(16.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Text(TranslationBase.of(context).billAmount + " : ", style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
                    SizedBox(height: 16.0),
                    Row(
                      mainAxisSize: MainAxisSize.max,
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: [
                        Text(TranslationBase.of(context).patientShareTotalToDo, style: TextStyle(fontSize: 13.0, letterSpacing: -0.64, fontWeight: FontWeight.w600)),
                        Row(
                          children: [
                            projectViewModel.isArabic ? Container() : SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16),
                            mWidth(6),
                            Text(
                              (widget.patientER_RC.transportationDetails!.tripType == 1
                                  ? ' ${widget.patientER_RC.patientERTransportationMethod!.priceTotal}'
                                  : ' ${(widget.patientER_RC.patientERTransportationMethod!.priceTotal * 2)}'),
                              style: TextStyle(fontSize: 16.0, letterSpacing: -0.64, fontWeight: FontWeight.bold),
                            ),
                            mWidth(6),
                            projectViewModel.isArabic ? SvgPicture.asset("assets/images/new/Saudi_Riyal_Symbol.svg", width: 16, height: 16) : Container(),
                          ],
                        ),
                      ],
                    )
                  ],
                ),
              ),
              SizedBox(
                height: 100,
              ),
            ],
          ),
        ),
      ),
      bottomSheet: Container(
        color: Theme.of(context).scaffoldBackgroundColor,
        padding: EdgeInsets.all(12.0),
        child: Row(
          children: [
            Expanded(
              flex: 1,
              child: DefaultButton(
                TranslationBase.of(context).back,
                () {
                  widget.changeCurrentTab(0);
                },
              ),
            ),
            SizedBox(width: 12.0),
            Expanded(
              flex: 1,
              child: DefaultButton(
                TranslationBase.of(context).next,
                () {
                  if (_result == null || _selectedHospital == null)
                    AppToast.showErrorToast(message: TranslationBase.of(context).selectAll);
                  else
                    setState(() {
                      widget.patientER_RC.transportationDetails!.pickupSpot = _isInsideHome ? 1 : 0;
                      if (widget.patientER_RC.transportationDetails!.direction == 0) {
                        // To Hospital
                        widget.patientER_RC.transportationDetails!.dropoffLatitude = _result!.lat.toStringAsFixed(6);
                        widget.patientER_RC.transportationDetails!.dropoffLongitude = _result!.long.toStringAsFixed(6);
                        widget.patientER_RC.transportationDetails!.pickupLatitude = _selectedHospital!.latitude;
                        widget.patientER_RC.transportationDetails!.pickupLongitude = _selectedHospital!.longitude;
                      } else {
                        // From Hospital
                        widget.patientER_RC.transportationDetails!.pickupLatitude = _selectedHospital!.latitude;
                        widget.patientER_RC.transportationDetails!.pickupLongitude = _selectedHospital!.longitude;
                        widget.patientER_RC.transportationDetails!.dropoffLatitude = _result!.lat.toStringAsFixed(6);
                        widget.patientER_RC.transportationDetails!.dropoffLongitude = _result!.long.toStringAsFixed(6);
                      }

                      widget.patientER_RC.transportationDetails!.dropoffLocationName = widget.patientER_RC.transportationDetails!.direction == 1 ? _result!.formattedAddress : _selectedHospital!.name;

                      widget.patientER_RC.patientIdentificationID = widget.amRequestViewModel.user.patientIdentificationNo;
                      widget.patientER_RC.transportationDetails!.pickupDateTime = DateUtil.convertDateToStringLocation(DateTime.now());
                      widget.patientER_RC.transportationDetails!.pickupLocationName = widget.patientER_RC.transportationDetails!.direction == 1 ? _selectedHospital!.name : _result!.formattedAddress;
                      widget.patientER_RC.projectID = widget.amRequestViewModel.user.projectID;
                      widget.patientER_RC.patientID = widget.amRequestViewModel.user.patientID;
                      widget.patientER_RC.transportationDetails!.requesterIsOutSA = false;
                      widget.patientER_RC.transportationDetails!.requesterMobileNo = widget.amRequestViewModel.user.mobileNumber;
                      widget.patientER_RC.transportationDetails!.requesterFileNo = widget.amRequestViewModel.user.patientID;

                      if (_haveAppointment == HaveAppointment.YES) {
                        widget.patientER_RC.transportationDetails!.appointmentNo = myAppointment!.appointmentNo.toString();
                        widget.patientER_RC.transportationDetails!.appointmentClinicName = myAppointment!.clinicName;
                        widget.patientER_RC.transportationDetails!.appointmentDoctorName = myAppointment!.doctorNameObj;
                        widget.patientER_RC.transportationDetails!.appointmentBranch = myAppointment!.projectName;
                        widget.patientER_RC.transportationDetails!.appointmentTime = myAppointment!.appointmentDate;
                        widget.patientER_RC.transportationDetails!.haveAppointment = 1;
                        widget.patientER_RC.transportationDetails!.dropoffLatitude = myAppointment!.latitude;
                        widget.patientER_RC.transportationDetails!.dropoffLongitude = myAppointment!.longitude;
                        widget.patientER_RC.transportationDetails!.dropoffLocationName = myAppointment!.projectName;
                      } else {
                        widget.patientER_RC.transportationDetails!.appointmentNo = "0";
                        widget.patientER_RC.transportationDetails!.appointmentClinicName = "";
                        widget.patientER_RC.transportationDetails!.appointmentDoctorName = "";
                        widget.patientER_RC.transportationDetails!.appointmentBranch = "";
                        widget.patientER_RC.transportationDetails!.appointmentTime = "";
                        widget.patientER_RC.transportationDetails!.haveAppointment = 0;
                      }

                      widget.patientER_RC.transportationDetails!.pickupSpot = _isInsideHome ? 1 : 0;

                      widget.patientER_RC.transportationDetails!.ambulate = 3;
                      widget.patientER_RC.transportationDetails!.ambulateTitle = "none";
                      widget.patientER_RC.transportationDetails!.notes = "";

                      widget.changeCurrentTab(3);
                    });
                },
                color: CustomColors.green,
              ),
            ),
          ],
        ),
      ),
    );
  }

  int _selectedHospitalIndex = -1;

  void confirmSelectHospitalDialog(List<HospitalsModel> hospitals) {
    List<RadioSelectionDialogModel> list = [
      for (int i = 0; i < hospitals.length; i++) RadioSelectionDialogModel(hospitals[i].name! + ' ${hospitals[i].distanceInKilometers} ' + TranslationBase.of(context).km, i),
    ];
    showDialog(
      context: context,
      builder: (cxt) => RadioSelectionDialog(
        listData: list,
        selectedIndex: _selectedHospitalIndex,
        isScrollable: true,
        onValueSelected: (index) {
          _selectedHospitalIndex = index;
          _selectedHospital = hospitals[index];
          setState(() {});
        },
      ),
    );
  }

  String getHospitalName(String title) {
    return _selectedHospital == null ? title : _selectedHospital!.name!;
  }

  String getSelectFromMapName(context) {
    return _result != null
        ? _result!.formattedAddress != null
            ? _result!.formattedAddress!
            : ""
        : "";
  }

  getAppointment() {
    GifLoaderDialogUtils.showMyDialog(context);
    widget.amRequestViewModel.getAppointmentHistory().then((value) {
      if (widget.amRequestViewModel.state == ViewState.Error || widget.amRequestViewModel.state == ViewState.ErrorLocal) {
        AppToast.showErrorToast(message: widget.amRequestViewModel.error);
      } else if (widget.amRequestViewModel.appoitmentAllHistoryResultList.length > 0) {
        GifLoaderDialogUtils.hideDialog(context);
        Navigator.push(
          context,
          FadePage(
            page: AvailableAppointmentsPage(
              appointmentsAllHistoryList: widget.amRequestViewModel.appoitmentAllHistoryResultList,
            ),
          ),
        ).then((value) {
          if (value != null)
            setState(() {
              myAppointment = value;
              HospitalsModel hospitalsModel = HospitalsModel();
              hospitalsModel.name = myAppointment!.projectName;
              hospitalsModel.iD = myAppointment!.projectID;
              hospitalsModel.mainProjectID = myAppointment!.projectID;
              hospitalsModel.latitude = myAppointment!.latitude;
              hospitalsModel.longitude = myAppointment!.longitude;
              _selectedHospital = hospitalsModel;
            });
          else {
            ProgressDialogUtil.hideProgressDialog(context);
            setState(() {
              _haveAppointment = HaveAppointment.NO;
            });
          }
        });
      } else {
        GifLoaderDialogUtils.hideDialog(context);
        setState(() {
          _haveAppointment = HaveAppointment.NO;
        });
        AppToast.showErrorToast(message: TranslationBase.of(context).noAppointment);
      }
    }).catchError((e) {
      GifLoaderDialogUtils.hideDialog(context);
      AppToast.showErrorToast(message: e);
    });
  }
}
