import 'package:get/get.dart';
import '../../models/DepositAccountResponse.dart';
import '../../models/ExchangeRate.dart';
import '../../models/GlsResponseModel.dart';
import '../../models/UserInfo.dart';
import 'FingerPrintController.dart';

class SessionCache {
  static final SessionCache _instance = SessionCache._internal();

  factory SessionCache() {
    return _instance;
  }

  SessionCache._internal();

  FingerPrintController _fingerPrintController = FingerPrintController();

  UserInfo userInfo = UserInfo();

  RxList<DepositAccount> _depositAccountList = RxList.empty();

  RxList<ExchangeRate> _exchangeRateList = RxList.empty();
  RxList<GlsResponseModel> _glsAccountsList = RxList.empty();

  // RxList<PaymentPurponse> _paymentPurposeList = RxList.empty();
  // RxList<LoanAccount> _loanAccountList = RxList.empty();
  // List<BeneficiaryAccount> _beneficiaryAccountList = [];
  // List<FavouriteBeneficiaryAccount> _favBeneficiaryAccountList = [];

  static SessionCache get instance => _instance;

  RxList<ExchangeRate> get exchangeRateList => _exchangeRateList;

  RxList<GlsResponseModel> get glsAccountsList => _glsAccountsList;

  set glsAccountsList(RxList<GlsResponseModel> value) {
    _glsAccountsList = value;
  }

  set exchangeRateList(RxList<ExchangeRate> value) {
    _exchangeRateList = value;
  } //RxList<PaymentPurponse> get paymentPurposeList => _paymentPurposeList;

  // set paymentPurposeList(RxList<PaymentPurponse> value) {
  //   _paymentPurposeList = value;
  // }

  RxList<DepositAccount> get depositAccountList => _depositAccountList;

  // List<FavouriteBeneficiaryAccount> get favBeneficiaryAccountList => _favBeneficiaryAccountList;
  //
  FingerPrintController get fingerPrintController => _fingerPrintController;

  //
  // RxList<LoanAccount> get loanAccountList => _loanAccountList;
  //
  // List<BeneficiaryAccount> get beneficiaryAccountList => _beneficiaryAccountList;
  //
  // set favBeneficiaryAccountList(List<FavouriteBeneficiaryAccount> value) {
  //   _favBeneficiaryAccountList = value;
  // }
  //
  // set fingerPrintController(FingerPrintController value) {
  //   _fingerPrintController = value;
  // }

  setDepositAccountList(RxList<DepositAccount> value) {
    _depositAccountList = value;
  }

// set loanAccountList(RxList<LoanAccount> value) {
//   _loanAccountList = value;
// }
//
// set beneficiaryAccountList(List<BeneficiaryAccount> value) {
//   _beneficiaryAccountList = value;
// }
}
