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

using System;
using UnityEngine;
using BackEnd;
using LitJson;

public class ProbabilityGroup : BaseGroup {
    public override string GetGroupName() {
        return "확률 관리";
    }

    public override void SetSubFunctionButton() {
        UIManager.Instance.AddSubFunction("뽑기 리스트 조회", GetProbabilityCardList);
        UIManager.Instance.AddSubFunction("뽑기 리스트 조회V2", GetProbabilityCardListV2);
        UIManager.Instance.AddSubFunction("뽑기 1회 실행", GetProbability);
        UIManager.Instance.AddSubFunction("뽑기 n회 실행", GetProbabilitys);
        UIManager.Instance.AddSubFunction("뽑기 내용 조회", GetProbabilityContents);

    }

    private void GetProbabilityCardList() {
        requestUI.SetExecuteButtonAction( () => {
            var bro = Backend.Probability.GetProbabilityCardList();
            ShowResultData(bro);
        }); 
    }
    
    
    // [5.9.] 확률 리스트 불러오기. 파일 적용이 안된 차트는 제거, old 컬럼은 제거
    private void GetProbabilityCardListV2() {
        requestUI.SetExecuteButtonAction( () => {
            var bro = Backend.Probability.GetProbabilityCardListV2();
            ShowResultData(bro);
        }); 
    }
    
    private void GetProbability() {
        requestUI.AddInputField("파일 ID");
        
        requestUI.SetExecuteButtonAction( () => {
            
            var chartFileUUID = InputParseByString(0, 0);
            
            var bro = Backend.Probability.GetProbability(chartFileUUID);
            ShowResultData(bro);
        }); 
    }
    
    private void GetProbabilitys() {
        requestUI.AddInputField("파일 ID");
        requestUI.AddInputField("뽑을 횟수", 10);

        requestUI.SetExecuteButtonAction( () => {

            var cardId = InputParseByString(0, 0);
            var count = InputParseByInt(1, 0);

            var bro = Backend.Probability.GetProbabilitys(cardId, count);
            ShowResultData(bro);
        }); 
    }
    
    private void GetProbabilityContents() {
        requestUI.AddInputField("파일 ID");

        requestUI.SetExecuteButtonAction( () => {
            var cardId = InputParseByString(0, 0);

            var bro = Backend.Probability.GetProbabilityContents(cardId);
            
            ShowResultData(bro);
        });
    }
}