package com.ruoyi.cai.ws.dto;

import com.alibaba.fastjson.JSON;
import com.ruoyi.cai.domain.Gift;

import java.util.HashMap;
import java.util.Map;

public class WsRMsgGen {

    public static WsR response(Long roomId){
        Map<String,Object> map = new HashMap<>();
        map.put("roomid",roomId);
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("response");
        ok.setMsg("连线成功");
        return ok;
    }

    public static WsR startVideo(Long roomId,Long duration){
        Map<String,Object> map = new HashMap<>();
        map.put("roomid",roomId);
        map.put("duration",duration);
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("startVideo");
        ok.setMsg("通话成功！");
        return ok;
    }

    public static WsR sysNotice(String content){
        Map<String,Object> map = new HashMap<>();
        map.put("type",1);
        map.put("content",content);
        map.put("linkType",0);
        map.put("linkUrl",null);
        map.put("fromUid",null);
        map.put("toUid",null);
        map.put("cancalltime",null);
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("notice");
        ok.setMsg("提示！");
        return ok;
    }

    public static WsR updateTip() {
        Map<String,Object> map = new HashMap<>();
        map.put("tip","等待对方响应...");
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("updatetip");
        ok.setMsg("提示！");
        return ok;
    }

    public static WsR hangup(String message, Long roomId, Integer hangUpType) {
        Map<String,Object> map = new HashMap<>();
        map.put("roomid","roomId");
        map.put("type","hangUpType");
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("hangup");
        ok.setMsg(message);
        return ok;
    }

    public static WsR canCallTime(long time) {
        Map<String,Object> map = new HashMap<>();
        map.put("tip",time);
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("cancalltime");
        ok.setMsg("提示！");
        return ok;
    }

    public static WsR rechargeNotice(String content) {
        Map<String,Object> map = new HashMap<>();
        map.put("type",1);
        map.put("content",content);
        map.put("linkType",2);
        map.put("linkUrl","rechargeCoin");
        map.put("fromUid",null);
        map.put("toUid",null);
        map.put("cancalltime",null);
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("notice");
        ok.setMsg("提示！");
        return ok;
    }

    public static WsR gift(Gift gift, Long callerId, Long receiverId) {
        Map<String,Object> content = new HashMap<>();
        content.put("giftid",gift.getId());
        content.put("giftname",gift.getName());
        content.put("gifticon",gift.getImg());
        content.put("giftsvga",gift.getSvga());
        Map<String,Object> map = new HashMap<>();
        map.put("type",3);
        map.put("content", JSON.toJSONString(content));
        map.put("linkType",null);
        map.put("linkUrl",null);
        map.put("fromUid",callerId);
        map.put("toUid",receiverId);
        map.put("cancalltime",null);
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("notice");
        ok.setMsg("提示！");
        return ok;
    }

    public static WsR heartbeat() {
        Map<String,Object> content = new HashMap<>();
        WsR<Map<String, Object>> ok = WsR.ok(content);
        ok.setMethod("heartbeat");
        ok.setMsg("检测成功！");
        return ok;
    }

    public static WsR chatData(String txt, Long from, Long to) {
        Map<String,Object> map = new HashMap<>();
        map.put("type",2);
        map.put("content", txt);
        map.put("linkType",null);
        map.put("linkUrl",null);
        map.put("fromUid",from);
        map.put("toUid",to);
        map.put("cancalltime",null);
        WsR<Map<String, Object>> ok = WsR.ok(map);
        ok.setMethod("notice");
        ok.setMsg("提示！");
        return ok;
    }
}
