// Copyright 2013-2022 AFI,Inc. All rights reserved

using System;
using BackEnd;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class ConfigUI : MonoBehaviour {

    [SerializeField] private TMP_InputField clientAppIdInputField;
    [SerializeField] private TMP_InputField signatureKeyInputField;
    [SerializeField] private Button confirmButton;
    [SerializeField] private Button closeButton;

    public void Initialize() {
        confirmButton.onClick.AddListener(ConfirmButton);
        closeButton.onClick.AddListener(CloseUI);
        
        gameObject.SetActive(false);
    }
    
    public void Reset() {
        clientAppIdInputField.text = string.Empty;
        signatureKeyInputField.text = string.Empty;
    }

    private void ConfirmButton() {

        BackendCustomSetting backendCustomSetting = new BackendCustomSetting();
        
        backendCustomSetting.clientAppID = clientAppIdInputField.text;
        backendCustomSetting.signatureKey = signatureKeyInputField.text;
        backendCustomSetting.useAsyncPoll = true;
        
        var bro = Backend.Initialize(backendCustomSetting);
        
        if (bro.IsSuccess()) {
            AlertUI.Instance.OpenUI("초기화가 성공했습니다!");
            CloseUI();
        } else {
            string error = "초기화 중 에러가 발생했습니다!\n" + bro.ToString();
            AlertUI.Instance.OpenUI(error);
        }
    }

    public void OpenUI() {
        gameObject.SetActive(true);

    }

    private void CloseUI() {
        if (Backend.IsInitialized == false) {
            AlertUI.Instance.OpenUI("초기화가 아직 진행되지 않았습니다!");
            return;
        }
        
        gameObject.SetActive(false);
    }
    
}