package com.yiqi.order.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yiqi.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yiqi.common.core.domain.BaseEntity;
import lombok.Data;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

/**
 * 充值卡退款管理对象 order_recharge_refund
 *
 * @author ruoyi
 * @date 2024-08-10
 */
@ApiModel("充值卡退款管理")
@TableName("order_recharge_refund")
@Data
public class OrderRechargeRefund extends BaseEntity
{
    private static final long serialVersionUID=1L;

    /** 主键ID */
    @ApiModelProperty("主键ID")
    @TableId(type = IdType.AUTO)

    private Long id;

    /** 原订单编号 */
    @Excel(name = "原订单编号")
    @ApiModelProperty("原订单编号")
    private String orderNo;

    /** 退款编号 */
    @Excel(name = "退款编号")
    @ApiModelProperty("退款编号")
    private String refundNo;

    /** 卡号 */
    @Excel(name = "卡号")
    @ApiModelProperty("卡号")
    private String cardNo;

    @ApiModelProperty("客户姓名")
    @TableField(exist = false)
    private String appUserName;

    @ApiModelProperty("手机号")
    @TableField(exist = false)
    private String appUserPhone;

    @ApiModelProperty("储值门店")
    @TableField(exist = false)
    private String storeName;

    /** 充值卡归属门店 */
    @Excel(name = "充值卡门店")
    @ApiModelProperty("充值卡归属门店")

    private Long storeId;


    /** 充值用户ID */
    @Excel(name = "充值用户ID")
    @ApiModelProperty("充值用户ID")

    private Long rechargeUserId;

    /** 支付金额 */
    @Excel(name = "支付金额")
    @ApiModelProperty("支付金额")
    private BigDecimal payAmount;

    /** 充值金额 */
    @Excel(name = "充值金额")
    @ApiModelProperty("充值金额")
    private BigDecimal rechargeAmount;

    /** 赠送金额 */
    @Excel(name = "赠送金额")
    @ApiModelProperty("赠送金额")
    private BigDecimal giveAmount;

    /** 充值余额 */
    @Excel(name = "充值余额")
    @ApiModelProperty("充值余额")
    private BigDecimal rechargeBalance;

    /** 赠送余额 */
    @Excel(name = "赠送余额")
    @ApiModelProperty("赠送余额")
    private BigDecimal giveBalance;


    /**
     * 退款方式（0=微信，1=支付宝，2=现金，3=充值卡）
     */
    @Excel(name = "退款方式", readConverterExp = "0==微信，1=支付宝，2=现金，3=充值卡")
    @ApiModelProperty("退款方式（0=微信，1=支付宝，2=现金，5=充值卡 9=组合支付）")
    private String refundType;

    /**
     * 福利金额
     */
    @Excel(name = "福利金额")
    @ApiModelProperty("福利金额")
    private BigDecimal welfareAmount;

    /**
     * 福利金额
     */
    @Excel(name = "福利金额")
    @ApiModelProperty("福利金额")
    private BigDecimal welfareBalance;


    /** 退款金额 */
    @Excel(name = "退款金额")
    @ApiModelProperty("退款金额")
    private BigDecimal refundAmount;

    /**
     * 现金支付金额
     */
    @Excel(name = "现金退款金额")
    @ApiModelProperty("现金退款金额")
    private BigDecimal cashRefundAmount;

    /**
     * 微信退款金额
     */
    @Excel(name = "微信退款金额")
    @ApiModelProperty("微信退款金额")
    private BigDecimal wxRefundAmount;

    /**
     * 支付宝退款金额
     */
    @Excel(name = "支付宝退款金额")
    @ApiModelProperty("支付宝退款金额")
    private BigDecimal aliRefundAmount;


    /** 退款申请时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Excel(name = "退款申请时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("退款申请时间")
    private Date refundApplyTime;

    /** 退卡原因 */
    @Excel(name = "退卡原因")
    @ApiModelProperty("退卡原因")
    private String refundReason;

    /** 退卡状态（-1：退款失败 0:申请中 1：退款通过） */
    @Excel(name = "退卡状态", readConverterExp = "0=正常，1=退款申请中，2=退款同意，3=退款拒绝，4=退款取消")
    @ApiModelProperty("退卡状态（0=正常，1=退款申请中，2=退款同意，-2=退款拒绝，-3=退款取消）")
    private String refundStatus;

    /** 驳回原因 */
    @Excel(name = "驳回原因")
    @ApiModelProperty("驳回原因")
    private String rejectReason;

    /** 退款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("退款时间")
    private Date refundTime;

    /** 删除状态（0正常 1删除） */
    @ApiModelProperty("删除状态（0正常 1删除）")
    private String delFlag;


}
