package com.sckw.report.service.param;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;

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

/**
 * @author JC
 * @version 1.0
 * @desc 运单列表查询参数
 * @date 2023/{07}/19 10:20:44
 **/
@Data
@Accessors(chain = true)
public class WaybillOrderQuery implements Serializable {
    @Serial
    private static final long serialVersionUID = 2807043861611224384L;

    private String ids;
    /**
     * 派车开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startSendCarTime;

    /**
     * 派车结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endSendCarTime;

    /**
     * 装载开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startLoadTime;

    /**
     * 装载结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endLoadTime;

    /**
     * 卸载开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startUnloadTime;

    /**
     * 卸载结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endUnloadTime;

    /**
     * 关键字搜索
     */
    private String keywords;

    /**
     * 装载城市
     */
    private String loadCityCode;

    /**
     * 装载城市查询等级
     */
    private Integer loadCityCodeLevel;

    /**
     * 卸载城市
     */
    private String unloadCityCode;

    /**
     * 卸载城市查询等级
     */
    private Integer unloadCityCodeLevel;

    /**
     * 运单状态
     */
    @JsonProperty("status")
    @NotNull(message = "订单状态不能为空")
    private String status;
}
