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

using System;
using BackEnd;

public class OperationGroup : BaseGroup {
    
    public override string GetGroupName() {
        return "게임 운영 관리";
    }
    
    public override void SetSubFunctionButton() {
        UIManager.Instance.AddSubFunction("공지사항 리스트 조회", NoticeList);
        UIManager.Instance.AddSubFunction("공지사항 하나 조회", NoticeOne);
        UIManager.Instance.AddSubFunction("임시공지 조회", GetTempNotice);
        UIManager.Instance.AddSubFunction("이벤트 리스트 조회", EventList);
        UIManager.Instance.AddSubFunction("이벤트 하나 조회", EventOne);
        UIManager.Instance.AddSubFunction("게임 운영 정책 조회", GetPolicy);
        UIManager.Instance.AddSubFunction("게임 운영 정책 조회 V2", GetPolicyV2);
        UIManager.Instance.AddSubFunction("일대일 문의창 열기", OpenQuestionUI);
        UIManager.Instance.AddSubFunction("일대일 문의 언어 변경(한국어,영어)", ChangeQuestionUILanguage);


    }


    private void NoticeList() {
        requestUI.AddInputField("불러올 갯수", 10);
        
        requestUI.SetExecuteButtonAction( () => {
            var limit = InputParseByInt(0, 0);

            var bro = Backend.Notice.NoticeList(limit);
            ShowResultData(bro);
        });
    }
    
    private void NoticeOne() {
        requestUI.AddInputField("공지 inDate");
        
        requestUI.SetExecuteButtonAction( () => {

            var rowInDate = InputParseByString(0, 0);

            var bro = Backend.Notice.NoticeOne(rowInDate);
            ShowResultData(bro);
        });
    }

    private void GetTempNotice() {
        requestUI.SetExecuteButtonAction( () => {
            Backend.Notice.GetTempNotice( callback => {
                UIManager.Instance.OpenResultUI(callback);
            });
        });
    }

    private void EventList() {
        requestUI.AddInputField("불러올 갯수", 10);
        
        requestUI.SetExecuteButtonAction( () => {
            var limit = InputParseByInt(0, 0);
            
            var bro = Backend.Event.EventList(limit);
            ShowResultData(bro);
        });
    }

    private void EventOne() {
        requestUI.AddInputField("이벤트 inDate");

        requestUI.SetExecuteButtonAction( () => {

            var rowInDate = InputParseByString(0, 0);

            var bro = Backend.Event.EventOne(rowInDate);
            ShowResultData(bro);
        });
    }

    private void GetPolicy() {
        requestUI.SetExecuteButtonAction( () => {

            var bro = Backend.Policy.GetPolicy();
            ShowResultData(bro);
        });
    }
    
    // [5.9.4] 게임 운영 정책 조회. JSON 리턴값에 policy, policy2 컬럼 생성
    private void GetPolicyV2() {
        requestUI.SetExecuteButtonAction( () => {

            var bro = Backend.Policy.GetPolicyV2();
            ShowResultData(bro);
        });
    }
    
    private void OpenQuestionUI() {
        requestUI.SetExecuteButtonAction( () => {
            UIManager.Instance.OpenResultUIAndCustomAction("일대일 문의창을 활성화했습니다.", () => {
                BackendPlus.Question.OpenUI();
            });
        });
    }
    
    private void ChangeQuestionUILanguage() {
        requestUI.AddInputField("Korean or English");

        requestUI.SetExecuteButtonAction( () => {
            var languageName = InputParseByString(0, 0);
            
            UIManager.Instance.OpenResultUIAndCustomAction("변경 완료했습니다.", () => {
                try {
                    BackendPlus.Question.SetLanguageJsonName(languageName);
                } catch (Exception e) {
                    UIManager.Instance.OpenResultUI(e.ToString());
                }
            });
        });
    }
}