package com.wzj.soopin.order.domain.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

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


@Data
@Schema(description = "售后订单vo")
public class ManagerRefundOrderVO {
    @Schema(name = "id", description = "售后单id", required = true, implementation = Long.class)
    private Long id;

    @Schema(name = "orderId", description = "订单id", required = true, implementation = Long.class)
    private Long orderId;

    @Schema(name = "orderSn", description = "订单号", required = true, implementation = String.class)
    private String orderSn;

    @Schema(name = "payId", description = "支付ID", required = true, implementation = Long.class)
    private Long payId;

    @Schema(name = "phone", description = "用户手机号", required = true, implementation = String.class)
    private String phone;

    @Schema(name = "nickName", description = "用户昵称", required = true, implementation = String.class)
    private String nickName;

    @Schema(name = "status", description = "订单状态 0->待付款；1->待发货；2->已发货；3->已完成；4->已关闭；5->无效订单", required = true, implementation = Integer.class)
    private Integer status;

    @Schema(name = "userName", description = "用户名称", required = true, implementation = String.class)
    private String userName;

    @Schema(name = "payTime", description = "支付时间", required = true, implementation = String.class)
    private String payTime;

    @Schema(name = "payType", description = "支付方式 支付方式：0->未支付；1->支付宝；2->微信", required = true, implementation = Integer.class)
    private Integer payType;

    @Schema(name = "applyRefundTime", description = "申请售后的时间", required = true, implementation = String.class)
    private String applyRefundTime;

    @Schema(name = "refundFinishTime", description = "售后完成的时间", required = true, implementation = String.class)
    private String refundFinishTime;

    @Schema(name = "aftersaleStatus", description = "0->待处理；1->退货中；2->已完成；3->已拒绝； 4->用户取消", required = true, implementation = Integer.class)
    private Integer aftersaleStatus;

    @Schema(name = "note", description = "备注", required = true, implementation = String.class)
    private String note;

    @Schema(name = "applyRefundAmount", description = "退款金额", required = true, implementation = BigDecimal.class)
    private BigDecimal applyReturnAmount;

    @Schema(name = "refundNum", description = "退款数量", required = true, implementation = Integer.class)
    private Integer refundNum;

    @Schema(name = "applyRefundType", description = "申请退货方式：1-仅退款，2-退货退款", required = true, implementation = Integer.class)
    private Integer applyRefundType;

    @Schema(name = "handleTime", description = "处理时间", required = true, implementation = LocalDateTime.class)
    private LocalDateTime handleTime;

    @Schema(name = "reason", description = "原因", required = true, implementation = String.class)
    private String reason;

    @Schema(name = "description", description = "描述", required = true, implementation = String.class)
    private String description;

    @Schema(name = "proofPics", description = "凭证图片", required = true, implementation = String.class)
    private String proofPics;

    @Schema(name = "productInfo", description = "售后单商品数据")
    private List<ManagerOrderProductVO> productList;

    @Schema(name = "handleMan", description = "处理人员")
    private String handleMan;

    private String mark;

    private String refundWpCode;

    @Schema(description = "退货快递号")
    private String refundWaybillCode;
}
