package com.ycwl.basic.order.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycwl.basic.order.enums.RefundStatus;
import com.ycwl.basic.order.enums.RefundType;
import lombok.Data;

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

/**
 * 订单退款记录表实体V2
 */
@Data
@TableName("order_refund_v2")
public class OrderRefundV2 {
    
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    
    /**
     * 订单ID
     */
    @TableField("order_id")
    private Long orderId;
    
    /**
     * 退款单号
     */
    @TableField("refund_no")
    private String refundNo;
    
    /**
     * 退款类型
     */
    @TableField("refund_type")
    private RefundType refundType;
    
    /**
     * 退款金额
     */
    @TableField("refund_amount")
    private BigDecimal refundAmount;
    
    /**
     * 退款手续费
     */
    @TableField("refund_fee")
    private BigDecimal refundFee;
    
    /**
     * 退款状态
     */
    @TableField("refund_status")
    private RefundStatus refundStatus;
    
    /**
     * 退款原因
     */
    @TableField("refund_reason")
    private String refundReason;
    
    /**
     * 退款详细说明
     */
    @TableField("refund_description")
    private String refundDescription;
    
    /**
     * 申请人ID
     */
    @TableField("apply_by")
    private Long applyBy;
    
    /**
     * 审批人ID
     */
    @TableField("approve_by")
    private Long approveBy;
    
    /**
     * 操作备注
     */
    @TableField("operator_remarks")
    private String operatorRemarks;
    
    /**
     * 支付平台退款单号
     */
    @TableField("payment_refund_id")
    private String paymentRefundId;
    
    /**
     * 退款渠道
     */
    @TableField("refund_channel")
    private String refundChannel;
    
    /**
     * 申请时间
     */
    @TableField("apply_time")
    private Date applyTime;
    
    /**
     * 审批时间
     */
    @TableField("approve_time")
    private Date approveTime;
    
    /**
     * 完成时间
     */
    @TableField("complete_time")
    private Date completeTime;
    
    /**
     * 创建时间
     */
    @TableField("create_time")
    private Date createTime;
    
    /**
     * 更新时间
     */
    @TableField("update_time")
    private Date updateTime;
    
    /**
     * 创建人
     */
    @TableField("create_by")
    private Long createBy;
    
    /**
     * 更新人
     */
    @TableField("update_by")
    private Long updateBy;
}