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

import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.format.annotation.DateTimeFormat;

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


/**
 * @author tmerclub
 */
public class OrderRefundSearchDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "订单号")
    private Long orderId;

    @Schema(description = "订单号id列表")
    private List<Long> orderIds;

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

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

    @Schema(description = "手机号码（默认当前订单手机号码）")
    private String buyerMobile;

    @Schema(description = "用户id")
    private Long userId;

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

    @Schema(description = "退款单号")
    private Long refundId;

    @Schema(description = "开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @Schema(description = "退款申请开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginTime;

    @Schema(description = "退款申请结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @Schema(description = "同意退款时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date decisionTime;

    @Schema(description = "同意退款时间开始")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date decisionStartTime;

    @Schema(description = "同意退款时间结束")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date decisionEndTime;

    @Schema(description = "处理退款状态:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功  -1.退款关闭 6.平台介入中)")
    private Integer returnMoneySts;

    @Schema(description = "处理退款状态列表:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功  -1.退款关闭)")
    private List<Integer> returnMoneyStsList;

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

    @Schema(description = "订单类型 1团购订单 2秒杀订单 3积分订单")
    private Integer orderType;

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

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

    @Schema(description = "供应商id列表")
    private List<Long> supplierIds;

    @Schema(description = "店铺id列表")
    private List<Long> shopIds;

    /**
     * 不等于该退款状态
     */
    private Integer returnMoneyStsExclude;

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

    @Schema(description = "申请介入时间")
    private Date applyInterventionTime;

    @Schema(description = "开始页")
    private Integer pageNum;

    @Schema(description = "每页大小")
    private Integer pageSize;

    private Integer sysType;

    /**
     * 响应数据字段数组
     */
    private String[] fetchSource;

    public Integer getPlatformInterventionStatus() {
        return platformInterventionStatus;
    }

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

    public Date getApplyInterventionTime() {
        return applyInterventionTime;
    }

    public void setApplyInterventionTime(Date applyInterventionTime) {
        this.applyInterventionTime = applyInterventionTime;
    }

    public Long getOrderId() {
        return orderId;
    }

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

    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 String getBuyerMobile() {
        return buyerMobile;
    }

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

    public Long getUserId() {
        return userId;
    }

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

    public Long getShopId() {
        return shopId;
    }

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

    public Long getRefundId() {
        return refundId;
    }

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

    public Date getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(Date beginTime) {
        this.beginTime = beginTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getDecisionTime() {
        return decisionTime;
    }

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

    public Date getDecisionStartTime() {
        return decisionStartTime;
    }

    public void setDecisionStartTime(Date decisionStartTime) {
        this.decisionStartTime = decisionStartTime;
    }

    public Date getDecisionEndTime() {
        return decisionEndTime;
    }

    public void setDecisionEndTime(Date decisionEndTime) {
        this.decisionEndTime = decisionEndTime;
    }

    public Integer getReturnMoneySts() {
        return returnMoneySts;
    }

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

    public String getShopName() {
        return shopName;
    }

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

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Long getSupplierId() {
        return supplierId;
    }

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

    public Integer getSysType() {
        return sysType;
    }

    public void setSysType(Integer sysType) {
        this.sysType = sysType;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public String[] getFetchSource() {
        return fetchSource;
    }

    public void setFetchSource(String[] fetchSource) {
        this.fetchSource = fetchSource;
    }

    public List<Integer> getReturnMoneyStsList() {
        return returnMoneyStsList;
    }

    public void setReturnMoneyStsList(List<Integer> returnMoneyStsList) {
        this.returnMoneyStsList = returnMoneyStsList;
    }

    public List<Long> getOrderIds() {
        return orderIds;
    }

    public void setOrderIds(List<Long> orderIds) {
        this.orderIds = orderIds;
    }

    public Integer getReturnMoneyStsExclude() {
        return returnMoneyStsExclude;
    }

    public void setReturnMoneyStsExclude(Integer returnMoneyStsExclude) {
        this.returnMoneyStsExclude = returnMoneyStsExclude;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public String getSupplierName() {
        return supplierName;
    }

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

    public List<Long> getSupplierIds() {
        return supplierIds;
    }

    public void setSupplierIds(List<Long> supplierIds) {
        this.supplierIds = supplierIds;
    }

    public List<Long> getShopIds() {
        return shopIds;
    }

    public void setShopIds(List<Long> shopIds) {
        this.shopIds = shopIds;
    }

    @Override
    public String toString() {
        return "OrderRefundSearchDTO{" +
                "orderId=" + orderId +
                ", orderIds=" + orderIds +
                ", refundType=" + refundType +
                ", applyType=" + applyType +
                ", buyerMobile='" + buyerMobile + '\'' +
                ", userId=" + userId +
                ", shopId=" + shopId +
                ", refundId=" + refundId +
                ", startTime=" + startTime +
                ", beginTime=" + beginTime +
                ", endTime=" + endTime +
                ", decisionTime=" + decisionTime +
                ", decisionStartTime=" + decisionStartTime +
                ", decisionEndTime=" + decisionEndTime +
                ", returnMoneySts=" + returnMoneySts +
                ", returnMoneyStsList=" + returnMoneyStsList +
                ", shopName='" + shopName + '\'' +
                ", orderType=" + orderType +
                ", supplierId=" + supplierId +
                ", supplierName='" + supplierName + '\'' +
                ", supplierIds=" + supplierIds +
                ", shopIds=" + shopIds +
                ", returnMoneyStsExclude=" + returnMoneyStsExclude +
                ", pageNum=" + pageNum +
                ", pageSize=" + pageSize +
                ", sysType=" + sysType +
                ", fetchSource=" + Arrays.toString(fetchSource) +
                '}';
    }
}
