//@ts-nocheck
import { observable, action } from 'mobx';
import { Api } from '../../services/api';
import { myLog } from '../../utils/log';
import { Alert } from 'react-native';
import { NATIONAL_ID, save, USER } from '../../utils/storage';
import appStore from '../../AppStore';

class Store {
  @observable isLoading = false;
  @observable isError = false;
  @observable data = {};
  @observable nationalIdDate = null;

  @action
  async uploadNationalCard(body, loanbriefId, onSuccess?) {
    this.isLoading = true;
    const response = await Api.getInstance().ekycNationalCard(
      body,
      loanbriefId
    );
    this.isLoading = false;
    myLog(response);
    if (response.kind === 'ok') {
      if (response.data.meta.errorCode === 200) {
        if (response.data.data !== null) {
          if (
            response.data.data?.info !== null &&
            response.data.data?.side === 'BACK'
          ) {
            if (response.data.data?.missingCorner === false) {
              this.isError = false;
              myLog('data', response.data.data);
              save(NATIONAL_ID, response.data.data);
              this.nationalIdDate = response.data.data;
              appStore.nationalID = response.data.data.info?.issueDate;
              if (onSuccess) {
                onSuccess(response.data.data);
              }
            } else {
              Alert.alert(
                'Thông báo',
                'Vui lòng chụp đầy đủ không bị cắt góc CMND/CCCD mặt sau',
                [{ text: 'Đồng ý' }]
              );
            }
          } else {
            Alert.alert(
              'Thông báo',
              `Vui lòng chụp đúng ảnh CMND/CCCD mặt sau`,
              [{ text: 'Đồng ý' }]
            );
          }
        } else {
          Alert.alert('Thông báo', `Vui lòng chụp đúng ảnh CMND/CCCD mặt sau`, [
            { text: 'Đồng ý' },
          ]);
        }
      } else {
        Alert.alert('Thông báo', response.data.meta.errorMessage, [
          { text: 'Đồng ý' },
        ]);
      }
    } else {
      this.isLoading = false;
      this.isError = false;
      Alert.alert('Thông báo', 'Có lỗi xảy ra. Vui lòng thử lại sau', [
        { text: 'Đồng ý' },
      ]);
    }
  }

  @action
  async uploadImage(body, onSuccess?, onError?) {
    this.isLoading = true;
    const response = await Api.getInstance().uploadDocument(body);
    this.isLoading = false;
    myLog(response);
    if (response.kind === 'ok') {
      if (response.data.meta.errorCode === 200) {
        this.isError = false;
        myLog('data', response.data.data);
        if (onSuccess) {
          onSuccess(response.data.data);
        }
      } else {
        if (onError) onError();
        Alert.alert('Thông báo', response.data.meta.errorMessage, [
          { text: 'Đồng ý' },
        ]);
      }
    } else {
      this.isLoading = false;
      this.isError = false;
      if (onError) onError();
      Alert.alert('Thông báo', 'Có lỗi xảy ra. Vui lòng thử lại sau', [
        { text: 'Đồng ý' },
      ]);
    }
  }
}

const nationalIDStore = new Store();

export default nationalIDStore;
