package com.ruoyi.info.order.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.info.order.enums.RefundStatus;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;


/**
 * 售后订单视图对象 tb_order_refund
 *
 * @author ruoyi
 * @date 2025-09-29
 */
@Data
@ApiModel("售后订单视图对象")
@ExcelIgnoreUnannotated
public class OrderRefundVo {

    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    @ExcelProperty(value = "ID")
    @ApiModelProperty("ID")
    private Long id;

    /**
     * 订单ID
     */
    @ExcelProperty(value = "订单ID")
    @ApiModelProperty("订单ID")
    private Long orderId;

    /**
     * 退款原因
     */
    @ExcelProperty(value = "退款原因")
    @ApiModelProperty("退款原因")
    private String refundReason;

    /**
     * 退款数量
     */
    @ExcelProperty(value = "退款数量")
    @ApiModelProperty("退款数量")
    private Integer refundQuantity;

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

    /**
     * 退款方式
     */
    @ExcelProperty(value = "退款方式")
    @ApiModelProperty("退款方式")
    private String refundWay;

    /**
     * 退款说明
     */
    @ExcelProperty(value = "退款说明")
    @ApiModelProperty("退款说明")
    private String refundDesc;

    /**
     * 退款状态
     */
    @ExcelProperty(value = "退款状态")
    @ApiModelProperty("退款状态")
    private RefundStatus refundStatus;

    /**
     * 实退金额
     */
    @ExcelProperty(value = "实退金额")
    @ApiModelProperty("实退金额")
    private BigDecimal actualRefundAmount;

    /**
     * 操作原因
     */
    @ExcelProperty(value = "操作原因")
    @ApiModelProperty("操作原因")
    private String operationReason;

    /**
     * 操作时间
     */
    @ExcelProperty(value = "操作时间")
    @ApiModelProperty("操作时间")
    private Date operationTime;

    /**
     * 操作人
     */
    @ExcelProperty(value = "操作人")
    @ApiModelProperty("操作人")
    private Long operatorId;

    /**
     * 退款交易号
     */
    @ExcelProperty(value = "退款交易号")
    @ApiModelProperty("退款交易号")
    private String refundTradeNo;
    /**
     * 退款完成时间
     */
    @ExcelProperty(value = "退款完成时间")
    @ApiModelProperty("退款完成时间")
    private Date completeTime;
}
