package com.sckw.transport.model.param;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sckw.core.model.page.PageRequest;
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 TODO
 * @date 2023/{07}/19 10:20:44
 **/
@Data
@Accessors(chain = true)
public class ManagementWaybillOrderQuery extends PageRequest implements Serializable {
    @Serial
    private static final long serialVersionUID = -7815297050724808472L;

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

    /**
     * 启送时间-查询结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endStartTime;

    /**
     * 结束时间-查询开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startEndTime;

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

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

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