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

import io.swagger.v3.oas.annotations.Hidden;
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.Date;
import java.util.List;


/**
 * @author tmerclub
 */
public class PurchaseOrderSearchDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    @Schema(description = "采购id")
    private Long purchaseOrderId;

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

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

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

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

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

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

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

    @Schema(description = "状态 0:已作废 1:待入库 2:已发货 3.部分入库 5:已完成")
    private Integer status;

    @Schema(description = "操作员工id")
    private Long employeeId;

    @Schema(description = "商家名称")
    private String shopName;

    @Schema(description = "商品名称")
    private String spuName;

    @Schema(description = "收货人")
    private String consignee;

    @Schema(description = "手机号")
    private String mobile;

    @Schema(description = "商品编码")
    private String spuCodes;

    @Schema(description = "sku编码")
    private String partyCodes;

    /**
     * 开始时间
     */
    @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 endTime;


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

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

    private Integer sysType;

    @Hidden
    @Schema(description = "状态集合")
    private List<Integer> statuses;

    public Long getPurchaseOrderId() {
        return purchaseOrderId;
    }

    public void setPurchaseOrderId(Long purchaseOrderId) {
        this.purchaseOrderId = purchaseOrderId;
    }

    public Long getShopId() {
        return shopId;
    }

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

    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 Long getSupplierId() {
        return supplierId;
    }

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

    public String getSupplierName() {
        return supplierName;
    }

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

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(Long employeeId) {
        this.employeeId = employeeId;
    }

    public String getShopName() {
        return shopName;
    }

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

    public String getSpuName() {
        return spuName;
    }

    public void setSpuName(String spuName) {
        this.spuName = spuName;
    }

    public String getConsignee() {
        return consignee;
    }

    public void setConsignee(String consignee) {
        this.consignee = consignee;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getSpuCodes() {
        return spuCodes;
    }

    public void setSpuCodes(String spuCodes) {
        this.spuCodes = spuCodes;
    }

    public String getPartyCodes() {
        return partyCodes;
    }

    public void setPartyCodes(String partyCodes) {
        this.partyCodes = partyCodes;
    }

    public Date getStartTime() {
        return startTime;
    }

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

    public Date getEndTime() {
        return endTime;
    }

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

    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 Integer getSysType() {
        return sysType;
    }

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

    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;
    }

    public List<Integer> getStatuses() {
        return statuses;
    }

    public void setStatuses(List<Integer> statuses) {
        this.statuses = statuses;
    }

    @Override
    public String toString() {
        return "PurchaseOrderSearchDTO{" +
                "purchaseOrderId=" + purchaseOrderId +
                ", shopId=" + shopId +
                ", shopIds=" + shopIds +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", supplierId=" + supplierId +
                ", supplierIds=" + supplierIds +
                ", supplierName='" + supplierName + '\'' +
                ", status=" + status +
                ", employeeId=" + employeeId +
                ", shopName='" + shopName + '\'' +
                ", spuName='" + spuName + '\'' +
                ", consignee='" + consignee + '\'' +
                ", mobile='" + mobile + '\'' +
                ", spuCodes='" + spuCodes + '\'' +
                ", partyCodes='" + partyCodes + '\'' +
                ", startTime=" + startTime +
                ", endTime=" + endTime +
                ", pageNum=" + pageNum +
                ", pageSize=" + pageSize +
                ", sysType=" + sysType +
                ", statuses=" + statuses +
                '}';
    }
}
