
package org.tio.sitexxx.im.server.vo;

import cn.hutool.core.bean.BeanUtil;
import lombok.Data;
import org.tio.sitexxx.service.model.main.WxWalletSendRedPacket;

import java.io.Serializable;
import java.util.Map;

/**
 * 发红包vo
 * @author xufei
 * 2020年11月2日 下午7:07:44
 */
@Data
public class SendRedpacketVo implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -4464819506130930255L;

	/**
	 * uid-Y
	 */
	private Integer uid;

	/**
	 * 
	 * 普通红包:1;手气红包:2
	 */
	private Short mode;

	/**
	 * 单笔金额:以分为单位普通红包、一对一红包必传此值
	 */
	private String singlecny;

	/**
	 * 总金额：以分为单位拼手气红包必传此值
	 */
	private String cny;

	/**
	 * 支付协议号
	 */
	private String agrno;

	/**
	 * 红包数量:一对一红包数量为 1，普通群红包和拼手气红包 数量最大 100 个
	 */
	private Short num;

	/**
	 * 通知地址
	 */
	private String notifyUrl;

	/**
	 * 快捷支付超时时间
	 */
	private Short paytimeout;

	/**
	 * 快捷支付确认短信
	 */
	private String smscode;

	/**
	 * 快捷支付确认订单
	 */
	private String merorderid;

	/**
	 * 支付密码
	 */
	private String paypwd;

	/**
	 * 支付类型
	 */
	private Short paytype;

	/**
	 * 红包id
	 */
	private Integer rid;

	/**
	 * 备注
	 */
	private String remark;

	/**
	 * 会话id
	 */
	private Long chatlinkid;

	/**
	 * 会话业务id
	 */
	private Long bizid;

	/**
	 * 会话模型
	 */
	private Short chatmode;

	/**
	 * 币种
	 */
	private String currency = "CNY";

	//老版本兼容
	/**
	 * 
	 * GROUP_NORMAL 普通群红包:每个最大金额为 200 元
	 * ONE_TO_ONE 一对一:最大金额为 200 元
	 * GROUP_LUCK 拼手气红包:总金额=人数*200 元
	 * 
	 * 普通红包:1;手气红包:2
	 */
	private Short packetType;

	/**
	 * 单笔金额:以分为单位普通红包、一对一红包必传此值
	 */
	private String singleAmount;

	/**
	 * 总金额：以分为单位拼手气红包必传此值
	 */
	private String amount;

	/**
	 * 红包数量:一对一红包数量为 1，普通群红包和拼手气红包 数量最大 100 个
	 */
	private Short packetCount;
	
	private String nickName;

	private WxWalletSendRedPacket sendRed;

	/**
	 * @author xufei
	 * 2020年11月3日 下午4:58:24
	 */
	public Map<String, Object> toMap() {
		return BeanUtil.beanToMap(this);
	}

	/**
	 * @author xufei
	 * 2020年11月3日 下午4:58:23
	 */
	public static SendRedpacketVo toBean(Map<String, Object> map) {
		return BeanUtil.fillBeanWithMap(map, new SendRedpacketVo(), true);
	}
}
