package org.tio.sitexxx.service.service.pay.base;

import cn.hutool.core.bean.BeanUtil;
import lombok.Data;

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

/**
 * <pre>
 *    @author : vagrancy
 *    e-mail : 18050829067@163.com
 *    time   : 2025-11-25 09:40
 *    desc   :
 * </pre>
 */
@Data
public class RedpacketCallback5UResp {
    /**
     *
     * GROUP_NORMAL 普通群红包
     * ONE_TO_ONE 一对一
     * GROUP_LUCK 拼手气红包
     */
    private String packetType;

    /**
     * 红包个数
     */
    private String packetCount;

    /**
     * 接收红包个数
     */
    private String receivedCount;

    /**
     * 接收红包金额
     */
    private String receivedAmount;

    /**
     * 接收红包ID
     */
    private String receiveWalletId;

    /**
     * 支付方式
     * 银行卡支付：BANK_CARD
     * 余额支付：BALANCE
     *
     */
    private String paymentType;

    /**
     * 红包状态：已发送：SEND 成功：SUCCESS 取消：CANCEL 订单超时：TIMEOUT (只有已经支付过的订单有此状态) 失败：FAIL
     */
    private String orderStatus;

    /**
     * 创建时间
     */
    private String createDateTime;

    /**
     * 支付完成时间
     */
    private String debitDateTime;

    /**
     * 完成时间
     */
    private String completeDateTime;

    /**
     * 余额退回：BALANCE
     * 银行卡退回：BANKCARD
     */
    private String refundType;

    /**
     * 退回金额
     */
    private String refundAmount;

    /**
     * 退回个数
     */
    private String refundCount;

    /**
     * 红包金额
     */
    private String amount;

    /**
     * 交易流水号
     */
    private String serialNumber;

    /**
     * 币种
     */
    private String currency;

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

    /**
     * 商户号-N
     */
    private String merchantId;

    /**
     * 请求id-N
     */
    private String requestId;

    /**
     * 参数-N
     */
    private String hmac;

    /**
     * 错误日志
     */
    private String errorMessage;

    /**
     * 订单错误信息
     */
    private String orderErrorMessage;

    /**
     * @return
     * @author xufei
     * 2020年11月15日 下午5:10:25
     */
    public Map<String, Object> toMap() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("amount", this.amount);
        map.put("serialnumber", this.serialNumber);
        map.put("status", this.orderStatus);
        map.put("merchantId", this.merchantId);
        map.put("remark", this.remark);
        map.put("createDateTime", this.createDateTime);
        map.put("reqid", this.requestId);
        map.put("ordererrormsg", this.orderErrorMessage);
        return map;
    }

    public static RedpacketCallback5UResp toBean(Map<String, Object> map) {
        return BeanUtil.fillBeanWithMap(map, new RedpacketCallback5UResp(), true);
    }
}
