
package com.tmerclub.cloud.common.order.vo;

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

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author YXF
 * @date 2022/8/23
 */
public class EsOrderRefundVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "退款记录ID")
    private Long refundId;

    @Schema(description = "店铺ID")
    private Long shopId;

    @Schema(description = "店铺名称")
    private String shopName;

    @Schema(description = "供应商id")
    private Long supplierId;

    @Schema(description = "供应商名称")
    private String supplierName;

    @Schema(description = "买家ID")
    private Long userId;

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

    @Schema(description = "订单项ID(0:为全部订单项)")
    private Long orderItemId;

    @Schema(description = "退货数量(0:为全部订单项)")
    private Integer refundCount;

    @Schema(description = "退还积分")
    private Long refundScore;

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

    @Schema(description = "平台退款金额（退款时将这部分钱退回给平台，所以商家要扣除从平台这里获取的金额）")
    private Long platformRefundAmount;

    @Schema(description = "平台退款佣金")
    private Long platformRefundCommission;

    @Schema(description = "退款单总分销金额")
    private Long distributionTotalAmount;

    @Schema(description = "退款单类型（1:整单退款,2:单个物品退款）")
    private Integer refundType;

    @Schema(description = "申请类型:1,仅退款,2退款退货")
    private Integer applyType;

    @Schema(description = "是否接收到商品(1:已收到,0:未收到)")
    private Integer isReceived;

    @Schema(description = "退款关闭原因(1.买家撤销退款 2.卖家拒绝退款 3.退款申请超时被系统关闭)")
    private Integer closeType;

    /**
     * 详情见ReturnMoneyStsType
     */
    @Schema(description = "处理退款状态:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功  -1.退款关闭)")
    private Integer returnMoneySts;

    @Schema(description = "申请原因")
    private Integer buyerReason;

    @Schema(description = "申请原因 中文描述")
    private String buyerReasonValue;

    @Schema(description = "申请说明")
    private String buyerDesc;

    @Schema(description = "联系方式（退款时留下的手机号码）")
    private String buyerMobile;

    @Schema(description = "文件凭证(逗号隔开)")
    private String imgUrls;

    @Schema(description = "订单创建时间")
    private Date createTime;

    @Schema(description = "订单更新时间")
    private Date updateTime;

    @Schema(description = "超时时间（超过该时间不处理，系统将自动处理）（保留字段）")
    private Date overTime;

    @Schema(description = "拒绝原因")
    private String rejectMessage;

    @Schema(description = "卖家备注")
    private String sellerMsg;

    @Schema(description = "受理时间")
    private Date handelTime;

    @Schema(description = "发货时间")
    private Date deliveryTime;

    @Schema(description = "收货时间")
    private Date receiveTime;

    @Schema(description = "关闭时间")
    private Date closeTime;

    @Schema(description = "确定时间(确定退款时间)")
    private Date decisionTime;

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

    @Schema(description = "移交供应商时间")
    private Date supplierTime;

    @Schema(description = "供应商处理状态， -1.商家自行处理 0.待供应商处理 1.供应商已同意 2.供应商已拒绝")
    private Integer supplierHandleStatus;

    @Schema(description = "采购退款金额")
    private Long purchaseRefundAmount;

    @Schema(description = "采购的平台佣金退款金额")
    private Long purPlatformRefundCommission;

    @Schema(description = "订单运费")
    private Long freightAmount;

    @Schema(description = "是否待采购 1.是 0.否 2.已处理")
    private Long waitPurchase;

    @Schema(description = "订单状态 1:待付款 2:待发货(待自提) 3:待收货(已发货) 5:成功 6:失败 7:待成团")
    private Integer orderStatus;

    @Schema(description = "退款订单项")
    private List<EsOrderRefundItemVO> orderItems;


    @Schema(description = "平台介入状态 -1.没有介入 1.用户申请介入 2.平台同意介入 3.平台拒绝介入 5.平台同意退款成功 ")
    private Integer platformInterventionStatus;

    public Integer getPlatformInterventionStatus() {
        return platformInterventionStatus;
    }

    public void setPlatformInterventionStatus(Integer platformInterventionStatus) {
        this.platformInterventionStatus = platformInterventionStatus;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public Long getRefundId() {
        return refundId;
    }

    public void setRefundId(Long refundId) {
        this.refundId = refundId;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getOrderItemId() {
        return orderItemId;
    }

    public void setOrderItemId(Long orderItemId) {
        this.orderItemId = orderItemId;
    }

    public Integer getRefundCount() {
        return refundCount;
    }

    public void setRefundCount(Integer refundCount) {
        this.refundCount = refundCount;
    }

    public Long getRefundScore() {
        return refundScore;
    }

    public void setRefundScore(Long refundScore) {
        this.refundScore = refundScore;
    }

    public Long getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(Long refundAmount) {
        this.refundAmount = refundAmount;
    }

    public Long getPlatformRefundAmount() {
        return platformRefundAmount;
    }

    public void setPlatformRefundAmount(Long platformRefundAmount) {
        this.platformRefundAmount = platformRefundAmount;
    }

    public Long getPlatformRefundCommission() {
        return platformRefundCommission;
    }

    public void setPlatformRefundCommission(Long platformRefundCommission) {
        this.platformRefundCommission = platformRefundCommission;
    }

    public Long getDistributionTotalAmount() {
        return distributionTotalAmount;
    }

    public void setDistributionTotalAmount(Long distributionTotalAmount) {
        this.distributionTotalAmount = distributionTotalAmount;
    }

    public Integer getRefundType() {
        return refundType;
    }

    public void setRefundType(Integer refundType) {
        this.refundType = refundType;
    }

    public Integer getApplyType() {
        return applyType;
    }

    public void setApplyType(Integer applyType) {
        this.applyType = applyType;
    }

    public Integer getIsReceived() {
        return isReceived;
    }

    public void setIsReceived(Integer isReceived) {
        this.isReceived = isReceived;
    }

    public Integer getCloseType() {
        return closeType;
    }

    public void setCloseType(Integer closeType) {
        this.closeType = closeType;
    }

    public Integer getReturnMoneySts() {
        return returnMoneySts;
    }

    public void setReturnMoneySts(Integer returnMoneySts) {
        this.returnMoneySts = returnMoneySts;
    }

    public Integer getBuyerReason() {
        return buyerReason;
    }

    public void setBuyerReason(Integer buyerReason) {
        this.buyerReason = buyerReason;
    }

    public String getBuyerDesc() {
        return buyerDesc;
    }

    public void setBuyerDesc(String buyerDesc) {
        this.buyerDesc = buyerDesc;
    }

    public String getBuyerMobile() {
        return buyerMobile;
    }

    public void setBuyerMobile(String buyerMobile) {
        this.buyerMobile = buyerMobile;
    }

    public String getImgUrls() {
        return imgUrls;
    }

    public void setImgUrls(String imgUrls) {
        this.imgUrls = imgUrls;
    }

    public Date getOverTime() {
        return overTime;
    }

    public void setOverTime(Date overTime) {
        this.overTime = overTime;
    }

    public String getRejectMessage() {
        return rejectMessage;
    }

    public void setRejectMessage(String rejectMessage) {
        this.rejectMessage = rejectMessage;
    }

    public String getSellerMsg() {
        return sellerMsg;
    }

    public void setSellerMsg(String sellerMsg) {
        this.sellerMsg = sellerMsg;
    }

    public Date getHandelTime() {
        return handelTime;
    }

    public void setHandelTime(Date handelTime) {
        this.handelTime = handelTime;
    }

    public Date getDeliveryTime() {
        return deliveryTime;
    }

    public void setDeliveryTime(Date deliveryTime) {
        this.deliveryTime = deliveryTime;
    }

    public Date getReceiveTime() {
        return receiveTime;
    }

    public void setReceiveTime(Date receiveTime) {
        this.receiveTime = receiveTime;
    }

    public Date getCloseTime() {
        return closeTime;
    }

    public void setCloseTime(Date closeTime) {
        this.closeTime = closeTime;
    }

    public Date getDecisionTime() {
        return decisionTime;
    }

    public void setDecisionTime(Date decisionTime) {
        this.decisionTime = decisionTime;
    }

    public Date getRefundTime() {
        return refundTime;
    }

    public void setRefundTime(Date refundTime) {
        this.refundTime = refundTime;
    }

    public Date getSupplierTime() {
        return supplierTime;
    }

    public void setSupplierTime(Date supplierTime) {
        this.supplierTime = supplierTime;
    }

    public Integer getSupplierHandleStatus() {
        return supplierHandleStatus;
    }

    public void setSupplierHandleStatus(Integer supplierHandleStatus) {
        this.supplierHandleStatus = supplierHandleStatus;
    }

    public Long getPurchaseRefundAmount() {
        return purchaseRefundAmount;
    }

    public void setPurchaseRefundAmount(Long purchaseRefundAmount) {
        this.purchaseRefundAmount = purchaseRefundAmount;
    }

    public Long getPurPlatformRefundCommission() {
        return purPlatformRefundCommission;
    }

    public void setPurPlatformRefundCommission(Long purPlatformRefundCommission) {
        this.purPlatformRefundCommission = purPlatformRefundCommission;
    }

    public List<EsOrderRefundItemVO> getOrderItems() {
        return orderItems;
    }

    public void setOrderItems(List<EsOrderRefundItemVO> orderItems) {
        this.orderItems = orderItems;
    }

    public String getBuyerReasonValue() {
        return buyerReasonValue;
    }

    public void setBuyerReasonValue(String buyerReasonValue) {
        this.buyerReasonValue = buyerReasonValue;
    }

    public Long getFreightAmount() {
        return freightAmount;
    }

    public void setFreightAmount(Long freightAmount) {
        this.freightAmount = freightAmount;
    }

    public Long getWaitPurchase() {
        return waitPurchase;
    }

    public void setWaitPurchase(Long waitPurchase) {
        this.waitPurchase = waitPurchase;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    @Override
    public String toString() {
        return "EsOrderRefundVO{" +
                "refundId=" + refundId +
                ", shopId=" + shopId +
                ", shopName='" + shopName + '\'' +
                ", supplierId=" + supplierId +
                ", supplierName='" + supplierName + '\'' +
                ", userId=" + userId +
                ", orderId=" + orderId +
                ", orderItemId=" + orderItemId +
                ", refundCount=" + refundCount +
                ", refundScore=" + refundScore +
                ", refundAmount=" + refundAmount +
                ", platformRefundAmount=" + platformRefundAmount +
                ", platformRefundCommission=" + platformRefundCommission +
                ", distributionTotalAmount=" + distributionTotalAmount +
                ", refundType=" + refundType +
                ", applyType=" + applyType +
                ", isReceived=" + isReceived +
                ", closeType=" + closeType +
                ", returnMoneySts=" + returnMoneySts +
                ", buyerReason=" + buyerReason +
                ", buyerReasonValue='" + buyerReasonValue + '\'' +
                ", buyerDesc='" + buyerDesc + '\'' +
                ", buyerMobile='" + buyerMobile + '\'' +
                ", imgUrls='" + imgUrls + '\'' +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", overTime=" + overTime +
                ", rejectMessage='" + rejectMessage + '\'' +
                ", sellerMsg='" + sellerMsg + '\'' +
                ", handelTime=" + handelTime +
                ", deliveryTime=" + deliveryTime +
                ", receiveTime=" + receiveTime +
                ", closeTime=" + closeTime +
                ", decisionTime=" + decisionTime +
                ", refundTime=" + refundTime +
                ", supplierTime=" + supplierTime +
                ", supplierHandleStatus=" + supplierHandleStatus +
                ", purchaseRefundAmount=" + purchaseRefundAmount +
                ", purPlatformRefundCommission=" + purPlatformRefundCommission +
                ", freightAmount=" + freightAmount +
                ", waitPurchase=" + waitPurchase +
                ", orderStatus=" + orderStatus +
                ", orderItems=" + orderItems +
                ", platformInterventionStatus=" + platformInterventionStatus +
                '}';
    }
}
