package com.miaxis.wx.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.miaxis.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.miaxis.common.core.domain.BaseBusinessEntity;
import lombok.Data;
/**
 * 微信退款记录对象 refund_record
 *
 * @author miaxis
 * @date 2021-05-18
 */
@Data
@TableName("refund_record")
@ApiModel(value = "RefundRecord", description = "微信退款记录对象 refund_record")
public class RefundRecord extends BaseBusinessEntity{
    private static final long serialVersionUID = 1L;

    /** 记录id */
    @TableId(value = "id")
    @ApiModelProperty(value = "记录id")
    private Long id;

    /** 微信支付退款号 */
    @Excel(name = "微信支付退款号")
    @TableField("refund_id")
    @ApiModelProperty(value = "微信支付退款号")
    private String refundId;

    /** 退款单号 */
    @Excel(name = "退款单号")
    @TableField("out_refund_no")
    @ApiModelProperty(value = "退款单号")
    private String outRefundNo;

    /** 微信支付订单号 */
    @Excel(name = "微信支付订单号")
    @TableField("transaction_id")
    @ApiModelProperty(value = "微信支付订单号")
    private String transactionId;

    /** 商户订单号 */
    @Excel(name = "商户订单号")
    @TableField("out_trade_no")
    @ApiModelProperty(value = "商户订单号")
    private String outTradeNo;

    /** 枚举值：
ORIGINAL：原路退款
BALANCE：退回到余额
OTHER_BALANCE：原账户异常退到其他余额账户
OTHER_BANKCARD：原银行卡异常退到其他银行卡
示例值：ORIGINAL */
    @Excel(name = "枚举值： ORIGINAL：原路退款 BALANCE：退回到余额 OTHER_BALANCE：原账户异常退到其他余额账户 OTHER_BANKCARD：原银行卡异常退到其他银行卡 示例值：ORIGINAL")
    @TableField("channel")
    @ApiModelProperty(value = "枚举值： ORIGINAL：原路退款 BALANCE：退回到余额 OTHER_BALANCE：原账户异常退到其他余额账户 OTHER_BANKCARD：原银行卡异常退到其他银行卡 示例值：ORIGINAL")
    private String channel;

    /** 退款入账账户 */
    @Excel(name = "退款入账账户")
    @TableField("user_received_account")
    @ApiModelProperty(value = "退款入账账户")
    private String userReceivedAccount;

    /** 退款成功时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退款成功时间", width = 30, dateFormat = "yyyy-MM-dd")
    @TableField("success_time")
    @ApiModelProperty(value = "退款成功时间")
    private Date successTime;

    /** 退款状态枚举值：SUCCESS：退款成功CLOSED：退款关闭PROCESSING：退款处理中ABNORMAL：退款异常 */
    @Excel(name = "退款状态 枚举值： SUCCESS：退款成功 CLOSED：退款关闭 PROCESSING：退款处理中 ABNORMAL：退款异常")
    @TableField("status")
    @ApiModelProperty(value = "退款状态 枚举值： SUCCESS：退款成功 CLOSED：退款关闭 PROCESSING：退款处理中 ABNORMAL：退款异常")
    private String status;

    /** 资金账户 */
    @Excel(name = "资金账户")
    @TableField("funds_account")
    @ApiModelProperty(value = "资金账户")
    private String fundsAccount;

    /** 订单总金额，单位为分。
示例值：100 */
    @Excel(name = "订单总金额，单位为分。 示例值：100")
    @TableField("total")
    @ApiModelProperty(value = "订单总金额，单位为分。 示例值：100")
    private Integer total;

    /** 退款标价金额，单位为分 */
    @Excel(name = "退款标价金额，单位为分")
    @TableField("refund")
    @ApiModelProperty(value = "退款标价金额，单位为分")
    private Integer refund;

    /** 现金支付金额 */
    @Excel(name = "现金支付金额")
    @TableField("payer_total")
    @ApiModelProperty(value = "现金支付金额")
    private Integer payerTotal;

    /** 退款给用户的金额，不包含所有优惠券金额 */
    @Excel(name = "退款给用户的金额，不包含所有优惠券金额")
    @TableField("payer_refund")
    @ApiModelProperty(value = "退款给用户的金额，不包含所有优惠券金额")
    private Integer payerRefund;

    /** 去掉非充值代金券退款金额后的退款金额 */
    @Excel(name = "去掉非充值代金券退款金额后的退款金额")
    @TableField("settlement_refund")
    @ApiModelProperty(value = "去掉非充值代金券退款金额后的退款金额")
    private Integer settlementRefund;

    /** 应结订单金额=订单金额-免充值代金券金额 */
    @Excel(name = "应结订单金额=订单金额-免充值代金券金额")
    @TableField("settlement_total")
    @ApiModelProperty(value = "应结订单金额=订单金额-免充值代金券金额")
    private Integer settlementTotal;

    /** 优惠退款金额&lt;=退款金额，退款金额-代金券或立减优惠退款金额为现金，说明详见 */
    @Excel(name = "优惠退款金额&lt;=退款金额，退款金额-代金券或立减优惠退款金额为现金，说明详见")
    @TableField("discount_refund")
    @ApiModelProperty(value = "优惠退款金额&lt;=退款金额，退款金额-代金券或立减优惠退款金额为现金，说明详见")
    private Integer discountRefund;

    /** 符合ISO 4217标准的三位字母代码，目前只支持人民币：CNY。 */
    @Excel(name = "符合ISO 4217标准的三位字母代码，目前只支持人民币：CNY。")
    @TableField("currency")
    @ApiModelProperty(value = "符合ISO 4217标准的三位字母代码，目前只支持人民币：CNY。")
    private String currency;

}
