package org.springblade.thirdparty.mk.pojo.dto.approval;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.springblade.thirdparty.mk.support.MultiKeySerializer;

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

/**
 *  mk审批中心查询条件
 * @author bfhuange
 * @since 2025/4/2
 */
@Data
public class MKApprovalConditionDTO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    /**
     * 单据类型
     */
    private MKConditionDTO mydoc;
    /**
     *  关键字
     */
    @JsonSerialize(using = MultiKeySerializer.class)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<MKConditionDTO> keyword;
    /**
     *  申请时间
     */
    @JsonProperty("fdStartTime")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private MKConditionDTO startTime;
    /**
     *  接收时间
     */
    @JsonProperty("fdReceiveTime")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private MKConditionDTO receiveTime;
    /**
     *  模板名称
     */
    @JsonProperty("fdTemplateName")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private MKConditionDTO templateName;

    //======================已处理参数================================
    /**
     *  流程状态
     */
    @JsonProperty("fdStatus")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private MKConditionDTO status;
    /**
     *  任务结束时间
     */
    @JsonProperty("fdFinishTime")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private MKConditionDTO finishTime;
    /**
     *  最后处理时间（待审任务）
     */
    @JsonProperty("fdLastHandleTime")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private MKConditionDTO lastHandleTime;

    //======================已阅参数================================
    /**
     * 阅读时间
     */
    @JsonProperty("fdReadTime")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private MKConditionDTO readTime;

    //======================我参与的参数================================
    /**
     * 创建时间
     */
    @JsonProperty("fdCreateTime")
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private MKConditionDTO createTime;
}
