package com.ylx.massage.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 售后信息VO
 */
@Data
public class AfterSaleInfoVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 售后单号
     */
    private String afterSaleNo;

    /**
     * 原订单ID
     */
    private Long orderId;

    /**
     * 原订单编号
     */
    private String orderNo;

    /**
     * 收货状态（1未收货 2已收货）
     */
    private Integer receiptStatus;

    /**
     * 售后类型（1退货 2换货）
     */
    private Integer afterSaleType;

    /**
     * 售后类型描述
     */
    private String afterSaleTypeName;

    /**
     * 售后状态（0待审核 1审核通过 2审核拒绝 3待买家退货 4待商家收货 5退款处理中 6售后完成）
     */
    private Integer afterSaleStatus;

    /**
     * 售后状态描述
     */
    private String afterSaleStatusName;

    /**
     * 申请原因
     */
    private String applyReason;

    /**
     * 问题描述
     */
    private String applyDesc;

    /**
     * 凭证图片URL
     */
    private String applyImages;

    /**
     * 申请退款金额（分）
     */
    private Integer applyAmount;

    /**
     * 实际退款金额（分）
     */
    private Integer actualRefundAmount;

    /**
     * 退款方式（1原路退回 2退至余额）
     */
    private Integer refundType;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime auditTime;

    /**
     * 审核备注
     */
    private String auditRemark;

    /**
     * 拒绝原因（1超过售后期限 2不符合售后条件 3凭证不足 4其他）
     */
    private Integer rejectReason;

    /**
     * 退款完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime refundTime;

    /**
     * 换货新订单编号
     */
    private String exchangeOrderNo;

    /**
     * 售后完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime finishTime;

    /**
     * 退货快递单号
     */
    private String logisticsNo;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime;
}