package com.njzscloud.supervisory.order.pojo.dto;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 微信支付退款请求DTO
 */
@Data
public class WechatPayRefundDto {
    
    /**
     * 商户订单号
     */
    @NotBlank(message = "商户订单号不能为空")
    @Size(max = 32, message = "商户订单号不能超过32个字符")
    private String outTradeNo;
    
    /**
     * 微信支付订单号
     */
    @Size(max = 32, message = "微信支付订单号不能超过32个字符")
    private String transactionId;
    
    /**
     * 商户退款单号
     */
    @NotBlank(message = "商户退款单号不能为空")
    @Size(max = 64, message = "商户退款单号不能超过64个字符")
    private String outRefundNo;
    
    /**
     * 退款原因
     */
    @Size(max = 80, message = "退款原因不能超过80个字符")
    private String reason;
    
    /**
     * 退款金额（分）
     */
    @NotNull(message = "退款金额不能为空")
    private Long refund;
    
    /**
     * 原订单金额（分）
     */
    @NotNull(message = "原订单金额不能为空")
    private Long total;
    
    /**
     * 退款资金来源
     */
    private String fundsAccount;
    
    /**
     * 退款结果回调地址
     */
    private String notifyUrl;
}
