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

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

public class MessageGroup : BaseGroup {
    public override string GetGroupName() {
        return "쪽지 기능";
    }

    public override void SetSubFunctionButton() {
        UIManager.Instance.AddSubFunction("쪽지 보내기", SendMessage);
        UIManager.Instance.AddSubFunction("보낸 쪽지 목록 조회", GetSentMessageList);
        UIManager.Instance.AddSubFunction("보낸 쪽지 삭제", DeleteSentMessage);
        UIManager.Instance.AddSubFunction("받은 쪽지 목록 조회", GetReceivedMessageList);
        UIManager.Instance.AddSubFunction("받은 쪽지 삭제", DeleteReceivedMessage);

    }

    private void SendMessage() {
        requestUI.AddInputField("대상 유저 inDate");
        requestUI.AddInputField("내용");

        requestUI.SetExecuteButtonAction( () => {
            var gamerInDate = InputParseByString(0, 0);
            var contents = InputParseByString(1, 0);

            var bro = Backend.Message.SendMessage(gamerInDate, contents);
            ShowResultData(bro);
        }); 
    }
    
    private void GetSentMessageList() {
        requestUI.SetExecuteButtonAction( () => {
            var bro = Backend.Message.GetSentMessageList();
            ShowResultData(bro);
        }); 
    }
    
    private void DeleteSentMessage() {
        requestUI.AddInputField("메시지 inDate");
        
        requestUI.SetExecuteButtonAction( () => {
            var messageInDate = InputParseByString(0, 0);

            var bro = Backend.Message.DeleteSentMessage(messageInDate);
            ShowResultData(bro);
        }); 
    }
    
    private void GetReceivedMessageList() {
        requestUI.SetExecuteButtonAction( () => {
            var bro = Backend.Message.GetReceivedMessageList();
            ShowResultData(bro);
        }); 
    }
    
    private void DeleteReceivedMessage() {
        requestUI.AddInputField("메시지 inDate");
        
        requestUI.SetExecuteButtonAction( () => {
            var messageInDate = InputParseByString(0, 0);

            var bro = Backend.Message.DeleteReceivedMessage(messageInDate);
            ShowResultData(bro);
        }); 
    }
}