import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/order_model_view_model.dart';
import 'package:diplomaticquarterapp/models/Authentication/authenticated_user.dart';
import 'package:diplomaticquarterapp/pages/ContactUs/LiveChat/livechat_page.dart';
import 'package:diplomaticquarterapp/pages/ContactUs/findus/findus_page.dart';
import 'package:diplomaticquarterapp/pages/DrawerPages/family/my-family.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/login/welcome.dart';
import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/compare.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/my_reviews.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/lacum-activitaion-vida-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/lakum-main-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/lakum-terms-conditions-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/screens/pharmacy-terms-conditions-page.dart';
import 'package:diplomaticquarterapp/pages/pharmacies/wishlist.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/order/Order.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/pharmacyAddresses/PharmacyAddresses.dart';
import 'package:diplomaticquarterapp/pages/pharmacy/pharmacyContacts.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/uitl/app_toast.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';

dynamic languageID;

class PharmacyProfilePage extends StatefulWidget {
  final bool moveToOrder;
  final Function(int) changeTab;

  PharmacyProfilePage({@required this.moveToOrder, this.changeTab});

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

class _ProfilePageState extends State<PharmacyProfilePage> {
  AppSharedPreferences sharedPref = AppSharedPreferences();
  String page_id = "";

  AuthenticatedUser user;
  bool isLogin = false;
  String firstName;
  String customerId;
  String customerGUID;
  String lastName, mobileNo, identificationNo;
  int languageId;

  getLanguageID() async {
    languageID = await sharedPref.getString(APP_LANGUAGE);
  }

  getCustomer() async {
    String custID;
    String custGUID;
    custID = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
    custGUID = await sharedPref.getObject(PHARMACY_CUSTOMER_GUID);
    setState(() {
      customerId = custID;
      customerGUID = custGUID;
    });
    return customerId;
  }

  getUser() async {
    var userData = await sharedPref.getObject(USER_PROFILE);
    if (userData != null) {
      user = AuthenticatedUser.fromJson(userData);
      setState(() {
        firstName = user.firstName.toString();
      });
    } else {
      if (userData == null) {
        Navigator.push(
          context,
          FadePage(page: WelcomeLogin()),
        );
      }
    }
  }

  void initState() {
    getCustomer();
    getLanguageID();
    super.initState();
    getUser();
    if (widget.moveToOrder) {
      Navigator.push(context, FadePage(page: OrderPage(customerID: customerId, customerGUID: customerGUID)));
    }
  }

  @override
  Widget build(BuildContext context) {
    return BaseView<OrderModelViewModel>(
      onModelReady: (model) async {
        // var customerId = await sharedPref.getString(PHARMACY_CUSTOMER_ID);
        // var customerGUID = await sharedPref.getObject(PHARMACY_CUSTOMER_GUID);
        // GifLoaderDialogUtils.showMyDialog(context);
        // model.getOrder(customerId, customerGUID, page_id);
        // GifLoaderDialogUtils.hideDialog(context);
      },
      builder: (_, model, wi) => AppScaffold(
        appBarTitle: TranslationBase.of(context).myAccount,
        isShowAppBar: true,
        isShowDecPage: false,
        isPharmacy: true,
        showPharmacyCart: false,
        showHomeAppBarIcon: false,
        isMainPharmacyPages: true,
        backButtonTab: () {
          widget.changeTab(0);
        },
        body: user != null
            ? Container(
                color: Colors.white,
                child: SingleChildScrollView(
                  child: Column(
                    children: <Widget>[
                      Container(
                        child: Row(
                          children: <Widget>[
                            Container(
                              child: Row(
                                children: <Widget>[
                                  Container(
                                    padding: EdgeInsets.only(
                                      top: 20.0,
                                      left: 10.0,
                                      right: 10.0,
                                      bottom: 10.0,
                                    ),
                                    child: LargeAvatar(
                                      name: user.firstName.toString(),
                                      url: '',
                                    ),
                                  ),
                                  Column(children: <Widget>[
                                    Row(children: <Widget>[
                                      Text(
                                        TranslationBase.of(context).welcome,
                                        style: TextStyle(fontSize: 14.0, fontWeight: FontWeight.bold, color: Colors.grey),
                                      ),
                                    ]),
                                    SizedBox(
                                      height: 10,
                                    ),
                                    Row(children: <Widget>[
                                      Text(
                                        languageID == "ar" ? user.firstNameN.toString() + " " + user.lastNameN.toString() : user.firstName.toString() + " " + user.lastName.toString(),
                                        style: TextStyle(fontSize: 14.0, fontWeight: FontWeight.bold),
                                      ),
                                    ]),
                                  ]),
                                ],
                              ),
                            )
                          ],
                        ),
                      ),
                      Divider(
                        color: Colors.grey[350],
                        height: 20,
                        thickness: 5,
                        indent: 0,
                        endIndent: 0,
                      ),
                      SizedBox(
                        height: 15,
                      ),
                      Container(
                          child: Row(
                        children: <Widget>[
                          Expanded(
                            child: InkWell(
                              onTap: () {
                                if (customerId == null) {
                                  AppToast.showErrorToast(message: "Customer not found");
                                  return;
                                }
                                Navigator.push(context, FadePage(page: OrderPage(customerID: customerId, customerGUID: customerGUID)));
                              },
                              child: Column(
                                children: <Widget>[
//                                Image(image: AssetImage('assets/images/pharmacy/orders_icon.svg')),
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/orders_icon.svg',
                                    width: 50,
                                    height: 50,
                                  ),
                                  SizedBox(
                                    height: 5,
                                  ),
                                  Text(
                                    TranslationBase.of(context).orders,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                      fontWeight: FontWeight.bold,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                          ),
                          Expanded(
                            child: InkWell(
                              onTap: () {
                                if (customerId == null || customerId == '')
                                  Navigator.push(context, FadePage(page: LakumActivationVidaPage()));
                                else
                                  Navigator.push(context, FadePage(page: LakumMainPage()));
                              },
                              child: Column(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/lakum_icon.svg',
                                    width: 50,
                                    height: 50,
                                  ),
                                  SizedBox(
                                    height: 5,
                                  ),
                                  Text(
                                    TranslationBase.of(context).lakum,
                                    style: TextStyle(fontSize: 13.0, fontWeight: FontWeight.bold),
                                  ),
                                ],
                              ),
                            ),
                          ),
                          Expanded(
                            child: InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: WishlistPage()));
                              },
                              child: Column(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/wishlist_icon.svg',
                                    width: 50,
                                    height: 50,
                                  ),
                                  SizedBox(
                                    height: 5,
                                  ),
                                  Text(
                                    TranslationBase.of(context).wishlist,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                      fontWeight: FontWeight.bold,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                          ),
                          Expanded(
                            child: InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: MyReviewsPage()));
                              },
                              child: Column(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/review_icon.svg',
                                    width: 50,
                                    height: 50,
                                  ),
                                  SizedBox(
                                    height: 5,
                                  ),
                                  Text(
                                    TranslationBase.of(context).reviews,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                      fontWeight: FontWeight.bold,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                          ),
                        ],
                      )),
                      SizedBox(
                        height: 15,
                      ),
                      Divider(
                        color: Colors.grey[350],
                        height: 20,
                        thickness: 5,
                        indent: 0,
                        endIndent: 0,
                      ),
                      SizedBox(
                        height: 10,
                      ),
                      Container(
                        padding: EdgeInsets.only(left: 10.0),
                        child: Column(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: <Widget>[
                            Text(
                              TranslationBase.of(context).myAccount,
                              style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),
                            ),
                            SizedBox(
                              height: 10,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: HomePrescriptionsPage()));
                              },
                              child: Row(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/my_prescription_icon.svg',
                                    width: 28,
                                    height: 28,
                                  ),
                                  SizedBox(
                                    width: 15,
                                  ),
                                  Text(
                                    TranslationBase.of(context).myPrescription,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: ComparePage()));
                              },
                              child: Row(
                                children: <Widget>[
                                  Image.asset('assets/images/pharmacy/compare.png', width: 35, height: 35),
                                  SizedBox(
                                    width: 15,
                                  ),
                                  Text(
                                    TranslationBase.of(context).compare,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: HomePrescriptionsPage()));
                              },
                              child: Row(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/medication_refill_icon.svg',
                                    width: 30,
                                    height: 30,
                                  ),
                                  SizedBox(
                                    width: 20,
                                  ),
                                  Text(
                                    TranslationBase.of(context).medicationsRefill,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: MyFamily()));
                              },
                              child: Row(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/my_family_icon.svg',
                                    width: 20,
                                    height: 20,
                                  ),
                                  SizedBox(
                                    width: 20,
                                  ),
                                  Text(
                                    TranslationBase.of(context).family,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                               Navigator.push(context, FadePage(page: PharmacyAddressesPage(isShippingAddress: false)));
                              },
                              child: Row(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/shipping_addresses_icon.svg',
                                    width: 30,
                                    height: 30,
                                  ),
                                  SizedBox(
                                    width: 20,
                                  ),
                                  Text(
                                    TranslationBase.of(context).shippingAddresses,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: PharmacyTermsConditions()));
                              },
                              child: Row(
                                children: <Widget>[
                                  Image.asset(
                                    'assets/images/pharmacy/terms.png',
                                    width: 25,
                                    height: 25,
                                  ),
                                  SizedBox(
                                    width: 10,
                                  ),
                                  Text( TranslationBase.of(context).termOfService,
                                 //   TranslationBase.of(context).conditionsHMG,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: LakumTermsConditions(this.identificationNo, this.firstName, this.lastName, this.mobileNo, this.languageId)));
                              },
                              child: Row(
                                children: <Widget>[
                                  Image.asset(
                                    'assets/images/pharmacy/terms.png',
                                    width: 25,
                                    height: 25,
                                  ),
//                        IconButton(icon: Icon(Icons.error_outline), iconSize: 30,
//                          color: Colors.black,),
                                  SizedBox(
                                    width: 10,
                                  ),
                                  Text(
                                    TranslationBase.of(context).conditions,
                                    style: TextStyle(
                                      fontSize: 13.0,
                                    ),
                                  ),
                                ],
                              ),
                            ),
                          ],
                        ),
                      ),
                      SizedBox(
                        height: 10,
                      ),
                      Divider(
                        color: Colors.grey[350],
                        height: 20,
                        thickness: 5,
                        indent: 0,
                        endIndent: 0,
                      ),
                      SizedBox(
                        height: 10,
                      ),
                      Container(
                        padding: EdgeInsets.only(left: 10.0),
                        child: Column(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: <Widget>[
                            Text(
                              TranslationBase.of(context).reachUs,
                              style: TextStyle(fontSize: 16.0, fontWeight: FontWeight.bold),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: pharmacyContactsPage()));
                              },
                              child: Row(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/contact_us_icon.svg',
                                    width: 20,
                                    height: 20,
                                  ),
                                  SizedBox(
                                    width: 20,
                                  ),
                                  Text(
                                    TranslationBase.of(context).contactUs,
                                    style: TextStyle(fontSize: 13.0),
                                  ),
                                ],
                              ),
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Colors.grey,
                              height: 20,
                            ),
                            InkWell(
                              onTap: () {
                                Navigator.push(context, FadePage(page: FindUsPage()));
                              },
                              child: Row(
                                children: <Widget>[
                                  SvgPicture.asset(
                                    'assets/images/pharmacy/our_locations_icon.svg',
                                    width: 30,
                                    height: 30,
                                  ),
                                  SizedBox(
                                    width: 20,
                                  ),
                                  Text(
                                    TranslationBase.of(context).ourLocations,
                                    style: TextStyle(fontSize: 13.0),
                                  ),
                                ],
                              ),
                            )
                          ],
                        ),
                      )
                    ],
                  ),
                ),
              )
            : Container(),
      ),
    );
  }
}
