package api

import (
	"github.com/gin-gonic/gin"
	"github.com/goWxHook/goWxHook/core"
	"github.com/goWxHook/goWxHook/utils"
)

// switchSession
//
//	@Summary		切换会话
//	@Description	切换会话接口
//	@Tags			界面
//	@Accept			json
//	@Produce		json
//	@Param			body	body		core.SwitchSessionRequest	true	"会话"
//	@Response		200		{object}	CommonStringResponse		"{\"code\":0, ....}
//	@Router			/api/v1/ui/switch/session [post]
func (w *WebApi) switchSession(c *gin.Context) {
	var form core.SwitchSessionRequest
	err := c.ShouldBindJSON(&form)
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	err = w.WxApi.SwitchSession(form)
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", nil)
	return
}

// clearChatRecord
//
//	@Summary		清空聊天记录
//	@Description	清空聊天记录接口
//	@Tags			界面
//	@Accept			json
//	@Produce		json
//	@Response		200	{object}	CommonStringResponse	"{\"code\":0, ....}
//	@Router			/api/v1/ui/clear/chat/record [post]
func (w *WebApi) clearChatRecord(c *gin.Context) {
	err := w.WxApi.ClearChatRecord()
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", nil)
	return
}

// chatMsgNotNotify
//
//	@Summary		消息免打扰
//	@Description	消息免打扰接口
//	@Tags			界面
//	@Accept			json
//	@Produce		json
//	@Param			body	body		core.ChatMsgNotNotifyRequest	true	"消息免打扰"
//	@Response		200		{object}	CommonStringResponse			"{\"code\":0, ....}
//	@Router			/api/v1/ui/chat/msg/not/notify [post]
func (w *WebApi) chatMsgNotNotify(c *gin.Context) {
	var form core.ChatMsgNotNotifyRequest
	err := c.ShouldBindJSON(&form)
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	err = w.WxApi.ChatMsgNotNotify(form)
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", nil)
	return
}

// chatSessionTop
//
//	@Summary		置顶会话
//	@Description	置顶会话接口
//	@Tags			界面
//	@Accept			json
//	@Produce		json
//	@Param			body	body		core.ChatSessionTopRequest	true	"会话"
//	@Response		200		{object}	CommonStringResponse		"{\"code\":0, ....}
//	@Router			/api/v1/ui/chat/session/top [post]
func (w *WebApi) chatSessionTop(c *gin.Context) {
	var form core.ChatSessionTopRequest
	err := c.ShouldBindJSON(&form)
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	err = w.WxApi.ChatSessionTop(form)
	if err != nil {
		utils.ResponseError(c, err.Error(), nil)
		return
	}
	utils.ResponseOK(c, "success", nil)
	return
}
