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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.dromara.common.core.domain.model.BaseAudit;
import org.dromara.common.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;

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

/**
 * 订单售后 数据视图对象
 *
 * @author zcc
 */
@Schema(description = "订单售后数据视图对象")
@Data
public class AftersaleVO extends BaseAudit {
    /** ID */
    @Schema(description = "ID")
    private Long id;

    /** MEMBER_ID */
    @Schema(description = "MEMBER_ID")
    @Excel(name = "MEMBER_ID")
    private Long memberId;

    /** 订单id */
    @Schema(description = "订单id")
    @Excel(name = "订单id")
    private Long orderId;

    @Schema(description = "订单编号")
    private Long orderSn;

    private String nickname; // 会员昵称
    private String phone;    // 会员手机号

    /** 退款金额 */
    @Schema(description = "退款金额")
    @Excel(name = "退款金额")
    private BigDecimal returnAmount;

    /** 售后类型：1：退款，2：退货退款 */
    @Schema(description = "售后类型：1：退款，2：退货退款")
    @Excel(name = "售后类型：1：退款，2：退货退款")
    private Integer type;

    /** 申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝 */
    @Schema(description = "申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝")
    @Excel(name = "申请状态：0->待处理；1->退货中；2->已完成；3->已拒绝")
    private Integer status;

    /** 处理时间 */
    @Schema(description = "处理时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime handleTime;

    /** 退货数量 */
    @Schema(description = "退货数量")
    @Excel(name = "退货数量")
    private Integer quantity;

    /** 原因 */
    @Schema(description = "原因")
    @Excel(name = "原因")
    private String reason;

    /** 描述 */
    @Schema(description = "描述")
    @Excel(name = "描述")
    private String description;

    /** 凭证图片，以逗号隔开 */
    @Schema(description = "凭证图片，以逗号隔开")
    @Excel(name = "凭证图片，以逗号隔开")
    private String proofPics;

    /** 处理备注 */
    @Schema(description = "处理备注")
    @Excel(name = "处理备注")
    private String handleNote;

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

    @Schema(description = "退款流水号")
    @Excel(name = "退款流水号")
    private String orgTrace;

    @Schema(description = "审核状态 1.待审核;->2.审核通过;3->审核驳回")
    @Excel(name = "审核状态 1.待审核;->2.审核通过;3->审核驳回")
    private Integer authFlag;

    @Schema(description = "驳回原因")
    @Excel(name = "驳回原因")
    private String cause;

    @Schema(description = "租户id")
    @Excel(name = "租户id")
    private Long tenantId;
}
