import 'dart:async';

import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/basic_member_information_model.dart';
import 'package:mohem_flutter_app/models/check_mobile_app_version_model.dart';
import 'package:mohem_flutter_app/models/dashboard/itg_forms_model.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/member_login_list_model.dart';

import 'api_client.dart';

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

  DashbaordApiClient._internal();

  factory DashbaordApiClient() => _instance;

  Future<GenericResponseModel?> getAttendanceTracking() async {
    String url = "${ApiConsts.erpRest}GET_Attendance_Tracking";
    Map<String, dynamic> postParams = {};
    postParams.addAll(AppState().postParamsJson);
    return await ApiClient().postJsonForObject((json) {
      GenericResponseModel responseData = GenericResponseModel.fromJson(json);
      return responseData;
    }, url, postParams);
  }

  Future<GenericResponseModel?> getOpenNotifications() async {
    String url = "${ApiConsts.erpRest}GET_OPEN_NOTIFICATIONS";
    Map<String, dynamic> postParams = {};
    postParams.addAll(AppState().postParamsJson);
    return await ApiClient().postJsonForObject((json) {
      GenericResponseModel responseData = GenericResponseModel.fromJson(json);
      return responseData;
    }, url, postParams);
  }

  Future<ItgFormsModel?> getItgFormsPendingTask() async {
    String url = "${ApiConsts.cocRest}ITGFormsPendingTasks";
    Map<String, dynamic> postParams = {};
    postParams.addAll(AppState().postParamsJson);
    return await ApiClient().postJsonForObject((json) {
      ItgFormsModel responseData = ItgFormsModel.fromJson(json);
      return responseData;
    }, url, postParams);
  }

  Future<GenericResponseModel?> getAccrualBalances() async {
    String url = "${ApiConsts.erpRest}GET_ACCRUAL_BALANCES";
    Map<String, dynamic> postParams = {"P_EFFECTIVE_DATE": "1/30/2022"};
    postParams.addAll(AppState().postParamsJson);
    return await ApiClient().postJsonForObject((json) {
      GenericResponseModel responseData = GenericResponseModel.fromJson(json);
      return responseData;
    }, url, postParams);
  }

  Future<GenericResponseModel?> getOpenMissingSwipes() async {
    String url = "${ApiConsts.erpRest}GET_OPEN_MISSING_SWIPES";
    Map<String, dynamic> postParams = {};
    postParams.addAll(AppState().postParamsJson);
    return await ApiClient().postJsonForObject((json) {
      GenericResponseModel responseData = GenericResponseModel.fromJson(json);
      return responseData;
    }, url, postParams);
  }
}
