import 'dart:convert';

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

import '../../../../constant/box_name.dart';
import '../../../../constant/links.dart';
import '../../../../constant/style.dart';
import '../../../../main.dart';
import '../../../../views/widgets/elevated_btn.dart';
import '../../../functions/crud.dart';
import '../../../functions/encrypt_decrypt.dart';

class HelpController extends GetxController {
  bool isLoading = false;
  final formKey = GlobalKey<FormState>();
  final helpQuestionController = TextEditingController();
  Map helpQuestionDate = {};
  Map helpQuestionRepleyDate = {};
  String status = '';
  String qustion = '';
  late int indexQuestion = 0;
  getIndex(int i, String qustion1) async {
    indexQuestion = i;
    qustion = qustion1;
    update();
  }

  void addHelpQuestion() async {
    isLoading = true;
    update();
    var res = await CRUD().post(link: AppLink.addhelpCenter, payload: {
      'driverID': box.read(BoxName.driverID).toString(),
      'helpQuestion': (helpQuestionController.text)
    });
    var d = jsonDecode(res);
    isLoading = false;
    update();
    if (d['status'].toString() == 'success') {
      getHelpQuestion();
      // Get.snackbar('Feedback data saved successfully'.tr, '',
      //     backgroundColor: AppColor.greenColor,
      //     snackPosition: SnackPosition.BOTTOM);
    }
  }

  void getHelpQuestion() async {
    isLoading = true;
    update();
    var res = await CRUD().get(link: AppLink.gethelpCenter, payload: {
      'driverID': box.read(BoxName.driverID).toString(),
    });
    if (res == "failure") {
      isLoading = false;
      update();
      Get.defaultDialog(
          title: 'There is no help Question here'.tr,
          titleStyle: AppStyle.title,
          middleText: '',
          confirm: Column(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: [
              MyElevatedButton(
                  title: 'Add Question'.tr,
                  onPressed: () {
                    Get.back();
                  }),
              MyElevatedButton(
                  title: 'Back'.tr,
                  onPressed: () {
                    Get.back();
                    Get.back();
                  }),
            ],
          ));
    }
    helpQuestionDate = jsonDecode(res);
    isLoading = false;
    update();
  }

  Future getHelpRepley(String id) async {
    isLoading = true;
    update();
    var res = await CRUD().get(link: AppLink.getByIdhelpCenter, payload: {
      'id': id,
    });
    if (res == "failure") {
      status = 'not yet';
      isLoading = false;
      update();
    }
    helpQuestionRepleyDate = jsonDecode(res);
    isLoading = false;
    update();
  }

  @override
  void onInit() {
    getHelpQuestion();
    super.onInit();
  }
}
