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

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

public class RandomInfoGroup : BaseGroup {
    public override string GetGroupName() {
        return "랜덤 조회";
    }

    public override void SetSubFunctionButton() {
        UIManager.Instance.AddSubFunction("랜덤 테이블 리스트 조회", GetRandomDataTableList);
        UIManager.Instance.AddSubFunction("랜덤 데이터 삽입", SetRandomData);
        UIManager.Instance.AddSubFunction("랜덤 데이터 조회", GetRandomData);
        UIManager.Instance.AddSubFunction("랜덤 데이터 삭제", DeleteRandomData);
    }

    private void GetRandomDataTableList() {
        requestUI.SetExecuteButtonAction( () => {
            var bro = Backend.RandomInfo.GetRandomDataTableList();
            ShowResultData(bro);
        }); 
    }
    
    private void SetRandomData() {
        
        requestUI.AddInputField("RandomType", "User");
        requestUI.AddInputField("uuid");
        requestUI.AddInputField("등록 값",0);

        requestUI.SetExecuteButtonAction( () => {

            var randomType = InputParseByEnum<RandomType>(0,0);
            var uuid = InputParseByString(1,0);
            var value = InputParseByInt(2,0);

            var bro = Backend.RandomInfo.SetRandomData((RandomType)randomType, uuid, value);
            ShowResultData(bro);
        }); 
    }
    
    private void GetRandomData() {
        
        requestUI.AddInputField("RandomType", "User");
        requestUI.AddInputField("uuid");
        requestUI.AddInputField("검색 값",0);
        requestUI.AddInputField("허용 범위",3);
        requestUI.AddInputField("불러올 갯수",10);
        
        requestUI.SetExecuteButtonAction( () => {

            var randomType = InputParseByEnum<RandomType>(0,0);
            var uuid = InputParseByString(1,0);
            var pivot = InputParseByInt(2,0);
            var gap = InputParseByInt(3,0);
            var count = InputParseByInt(4,0);

            var bro = Backend.RandomInfo.GetRandomData((RandomType)randomType, uuid, pivot,gap,count);
            ShowResultData(bro);
        }); 
    }
    
    private void DeleteRandomData() {
        
        requestUI.AddInputField("RandomType", "User");
        requestUI.AddInputField("uuid");

        requestUI.SetExecuteButtonAction( () => {

            var randomType = InputParseByEnum<RandomType>(0,0);
            var uuid = InputParseByString(1,0);

            var bro = Backend.RandomInfo.DeleteRandomData((RandomType)randomType, uuid);
            ShowResultData(bro);
        }); 
    }
 
}