package com.yc.ship.module.trade.controller.admin.order.vo.refund;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 退款批次 Response VO")
@Data
@ExcelIgnoreUnannotated
public class RefundRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "29661")
    private Long id;

    @Schema(description = "订单ID", example = "12592")
    private Long orderId;

    @Schema(description = "订单号")
    @ExcelProperty("订单号")
    private String orderNo;

    @Schema(description = "订单状态")
    @ExcelProperty("订单状态")
    private Integer orderStatus;

    @Schema(description = "退款渠道")
    @ExcelProperty("退款渠道")
    private Integer refundChannel;

    @Schema(description = "销售渠道")
    @ExcelProperty("销售渠道")
    private Integer sellMethod;

    @Schema(description = "门店ID", example = "29017")
    @ExcelProperty("门店ID")
    private Long storeId;

    @Schema(description = "门店名称", example = "王五")
    @ExcelProperty("门店名称")
    private String storeName;

    @Schema(description = "设备ID", example = "20604")
    @ExcelProperty("设备ID")
    private Long machineId;

    @Schema(description = "设备名称", example = "王五")
    @ExcelProperty("设备名称")
    private String machineName;

    @Schema(description = "退票方式：0正常退票，1强制退票")
    @ExcelProperty("退票方式：0正常退票，1强制退票")
    private Integer refundMethod;

    @Schema(description = "退款方式0:现金，1:微信，2:支付宝", example = "1")
    @ExcelProperty("退款方式0:现金，1:微信，2:支付宝")
    private Integer refundType;

    @Schema(description = "退款原因", example = "不香")
    @ExcelProperty("退款原因")
    private String refundReason;

    @Schema(description = "退款人")
    @ExcelProperty("退款人")
    private String refundUser;

    @Schema(description = "退款人姓名")
    @ExcelProperty("退款人姓名")
    private String refundUserName;

    @Schema(description = "联系人姓名")
    @ExcelProperty("联系人姓名")
    private String contactName;

    @Schema(description = "出行时间")
    @ExcelProperty("出行时间")
    private String travelDate;

    @Schema(description = "支付平台退款单号，最近一次")
    @ExcelProperty("支付平台退款单号，最近一次")
    private String refundNo;

    @Schema(description = "退款金额")
    @ExcelProperty("退款金额")
    private BigDecimal refundAmount;

    @Schema(description = "退票状态：0待退票，1审核中，2审核拒绝，3审核通过，4已退票，5已退款，6退款失败，99已取消", example = "1")
    @ExcelProperty("退票状态：0待退票，1审核中，2审核拒绝，3审核通过，4已退票，5已退款，6退款失败，99已取消")
    private Integer refundStatus;

    @Schema(description = "供应商退款状态 0初始 6已退款 7退款失败", example = "0")
    @ExcelProperty("供应商退款状态 0初始 6已退款 7退款失败")
    private Integer supplierRefundStatus;

    @Schema(description = "退款次数", example = "4150")
    @ExcelProperty("退款次数")
    private Integer refundCount;

    @Schema(description = "退款时间")
    @ExcelProperty("退款时间")
    private LocalDateTime refundTime;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "手续费")
    @ExcelProperty("手续费")
    private BigDecimal fee;

    @Schema(description = "联系电话")
    @ExcelProperty("联系电话")
    private String mobile;

    @Schema(description = "时间方案id")
    private Long routePlanId;

    @Schema(description = "时间方案")
    @ExcelProperty("时间方案")
    private String routePlanName;

    @Schema(description = "产品名称")
    @ExcelProperty("产品名称")
    private String productName;
}