package com.zanxiang.game.module.manage.pojo.params;

import com.zanxiang.game.module.manage.enums.KfOperateEnum;
import com.zanxiang.game.module.manage.enums.KfRoomMsgTypeEnum;
import com.zanxiang.game.module.manage.enums.KfWebSocketMsgEnum;
import lombok.Data;

/**
 * @author : lingfeng
 * @time : 2024-02-27
 * @description : WebSocket客服消息通信参数
 */
@Data
public class KfWebSocketMsgParam {

    /**
     * webSocket消息类型, 必传参数
     */
    private KfWebSocketMsgEnum webSocketMsgType;

    /**
     * 客服登录token, 必传参数
     */
    private String token;

    /**
     * 游戏id, 必传参数(首次握手除外)
     */
    private Long gameId;

    /**
     * 分页信息, 分页获取数据的时候, 必须传
     */
    private PageBean page;

    /**
     * 玩家id, 玩家接入的时候必须传, 查询玩家信息的时候必须传
     */
    private String openId;

    /**
     * 房间id, 获取房间历史消息, 发消息的时候 -> 必传
     */
    private Long roomId;

    /**
     * 消息内容, 客服发送消息的时候必传
     */
    private MsgContentBean msgContent;

    /**
     * 快捷回复
     */
    private QuickReplyBean quickReplyBean;

    @Data
    public static class QuickReplyBean {

        /**
         * 交互类型, 必传
         */
        private KfOperateEnum kfOperateEnum;

        /**
         * 主键id, 删除和修改的时候必传
         */
        private Long id;

        /**
         * 内容, 添加和修改的时候必传
         */
        private String content;
    }

    @Data
    public static class MsgContentBean {

        /**
         * 消息类型, 文本传 : text, 图片传 : image
         */
        private KfRoomMsgTypeEnum msgType;

        /**
         * 文本内容
         */
        private String text;

        /**
         * 图片地址(oss下载地址)
         */
        private String image;
    }

    @Data
    public static class PageBean {

        /**
         * 当前页数
         */
        private Long pageNum = 1L;

        /**
         * 单页数量
         */
        private Long pageSize = 10L;
    }
}
