using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;

namespace AdamSync
{
    public class CreateRoomController : MonoBehaviour
    {
        public static CreateRoomController Instance;

        public InputField roomField;
        public InputField trainModelField;
        public InputField thinkDataField;
        public InputField userField;


        public Button registBtn;
        public Button createRoomBtn;
        public Button updateRoomBtn;

        public GameObject roomInfoPanel;
        public Button roomInfoConfirmBtn;

        public GameObject registInfoPanel;
        public Button registConfirmBtn;

        public Transform roomItemParent;

        public RoomInstructController roomInstructController;


        // Start is called before the first frame update
        private void Start()
        {
            AdamSync.SyncCreateRoom.registRequset += OnRegist;
            AdamSync.SyncCreateRoom.createRoomRequset += OnCreateRoom;
            AdamSync.SyncCreateRoom.getRoomsRequset += OnGetRooms;
            registBtn.onClick.AddListener(() =>
            {
                registInfoPanel.SetActive(true);
            });
            createRoomBtn.onClick.AddListener(() =>
            {
                roomInfoPanel.SetActive(true);
            });
            updateRoomBtn.onClick.AddListener(() =>
            {
                string getRooms = "getrooms ";
                _ = SyncCreateRoom.SendMessageAsync(getRooms);
            });

            registConfirmBtn.onClick.AddListener(() =>
           {
               string userName = "regist " + userField.text.Trim();
               _ = SyncCreateRoom.SendMessageAsync(userName);
               registInfoPanel.SetActive(false);
               registBtn.interactable = false;
           });
            roomInfoConfirmBtn.onClick.AddListener(() =>
            {
                OnConfirm();
                roomInfoPanel.SetActive(false);
            });

            createRoomBtn.interactable = false;
            updateRoomBtn.interactable = false;
            roomInfoPanel.SetActive(false);
            registInfoPanel.SetActive(false);
            //roomInstructController.gameObject.SetActive(false);



        }



        public void OnConfirm()
        {
            //string roomDataTemp = JsonUtility.ToJson(roomData);
            string roomDataTemp = "createroom " + roomField.text + "," + trainModelField.text + "," + thinkDataField.text;
            _ = SyncCreateRoom.SendMessageAsync(roomDataTemp);
            updateRoomBtn.interactable = true;
        }
        public void OnRegist(string msg)
        {
            Debug.Log("OnRegist====" + msg);
        }
        public void OnGetRooms(string msg)
        {
            Debug.Log("OnGetRooms====" + msg);
        }
        public void OnCreateRoom(string msg)
        {
            Debug.Log("OnCreateRoom====" + msg);
        }



        private void OnDisable()
        {
            SyncCreateRoom.registRequset -= OnRegist;
            SyncCreateRoom.createRoomRequset -= OnCreateRoom;
            SyncCreateRoom.getRoomsRequset -= OnGetRooms;
        }
    }
}