package mtwmapi

const (
	MsgSourceStore   = 1 //商家
	MsgSourceUser    = 2 //用户
	MsgTypeText      = 1 //文字
	MsgTypePic       = 2 //图片
	MsgTypeVoice     = 3 //语音
	MsgTypeGoodsCard = 4 //商品卡片
	MsgTypeOrderCard = 5 //订单卡片
)

//单聊信息体
type SingleChat struct {
	AppID       int    `json:"app_id"`        //应用标识
	AppPoiCode  string `json:"app_poi_code"`  //门店标识
	Cts         int    `json:"cts"`           //消息发送时间,10位时间戳
	MsgContent  string `json:"msg_content"`   //消息内容
	MsgID       int    `json:"msg_id"`        //消息id，确保消息唯一性，发送消息时，为三方的消息id，接收消息时，为美团的消息id
	MsgSource   int    `json:"msg_source"`    //消息发送方 商家：1，用户：2
	MsgType     int    `json:"msg_type"`      //消息类型： 文字-1; 图片-2;语音-3，注意b2c不支持语音; 商品卡片-4（发送商品卡片类型则不关注msg_content）; 订单卡片-5（订单卡片类型商家只能接收消息，不支持给用户发送消息，只支持单聊）
	OpenUserID  int    `json:"open_user_id"`  //用户id
	OrderID     int    `json:"order_id"`      // 订单id
	AppSpuCodes string `json:"app_spu_codes"` //开放平台侧商品标识（无须加密）
}

//获取长链接token返回参数
type GetConnTokenResp struct {
	ConnectionToken string `json:"connectionToken"` //建立长连接的token
	UserCount       int    `json:"userCount"`       //30分钟内，消息发送失败的用户数
	AppKey          string `json:"appKey"`          //建立长连接的appkey
}

//获取长连接的token
//https://developer.waimai.meituan.com/home/docDetail/461
func (a *API) GetConnectionToken() (retVal interface{}, err error) {
	retVal, err = a.AccessAPI("wm/IM/getConnectionToken", false, nil)
	return retVal, err
}

//设置消息已读
//https://open-shangou.meituan.com/home/docDetail/465
func (a *API) MsgRead(appPoiCode string, msgID, openUserID int) error {
	_, err := a.AccessAPI("/wm/IM/msgRead", false, map[string]interface{}{
		"app_poi_code": appPoiCode,
		"msg_id":       msgID,
		"open_user_id": openUserID,
	})
	return err
}
