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

using System;
using System.Collections.Generic;
using UnityEngine;
using BackEnd;

public class GameLogGroup : BaseGroup {
    public override string GetGroupName() {
        return "게임 로그";
    }

    public override void SetSubFunctionButton() {
        UIManager.Instance.AddSubFunction("게임 로그 삽입 V2", GameLogInsertV2);

        // [241028][hwjoo] 기존 로그 함수 삭제로 테스트 코드 제거.
        //UIManager.Instance.AddSubFunction("게임 로그 삽입", GameLogInsert);
        // [241028][hwjoo] 언제인지 모르지만 먼저 주석되어 있던 코드
        //UIManager.Instance.AddSubFunction("게임 로그 조회", GetGameLog);
    }

    // [241028][hwjoo] 기존 로그 함수 삭제로 테스트 코드 제거.
    //private void GameLogInsert() {
    //    requestUI.AddInputField("로그 유형");
    //    requestUI.AddInputField("유예 기간(일)", 90);
    //    requestUI.SetExtraInputAddUI();

    //    requestUI.SetExecuteButtonAction( () => {
    //        var logType = InputParseByString(0, 0);
    //        var graceHours = InputParseByInt(1, 0);

    //        Param param = new Param();
    //        AddParamFromExtraInput(2, param);

    //        var bro = Backend.GameLog.InsertLog(logType, param, graceHours);
    //        ShowResultData(bro);
    //    }); 
    //}

    private void GameLogInsertV2() {
        requestUI.AddInputField("로그 유형");
        requestUI.AddInputField("유예 기간(일)", 90);
        requestUI.SetExtraInputAddUI();

        requestUI.SetExecuteButtonAction( () => {
            var logType = InputParseByString(0, 0);
            var graceHours = InputParseByInt(1, 0);

            Param param = new Param();
            AddParamFromExtraInput(2, param);
            
            var bro = Backend.GameLog.InsertLogV2(logType, param, graceHours);
            ShowResultData(bro);
        }); 
    }

    private string firstKey = string.Empty;
    // private void GetGameLog() {
    //     requestUI.AddInputField("로그 유형");
    //     requestUI.AddInputField("불러올 갯수");
    //     requestUI.AddInputField("다음 페이지 조회 여부", "true");
    //
    //     requestUI.SetExecuteButtonAction( () => {
    //
    //         var logType = InputParseByString(0, 0);
    //         var limit = InputParseByInt(1, 0);
    //         var nextPage = InputParseByBool(2, 0);
    //
    //         BackendReturnObject bro;
    //         if (nextPage && !string.IsNullOrEmpty(firstKey)) {
    //             bro = Backend.GameLog.GetLog(logType, limit,firstKey);
    //         } else {
    //             bro = Backend.GameLog.GetLog(logType, limit);
    //         }
    //         
    //         if (bro.IsSuccess()) {
    //             firstKey = bro.FirstKeystring();
    //         }
    //         
    //         ShowResultData(bro);
    //     }); 
    // }
}