package com.njcn.supervision.pojo.param.survey;

import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDate;

@Data
public class SurveyPlanParam implements Serializable {

    private String id;
    @ApiModelProperty(value = "保存1,提交审批2")
    private String saveOrCheckflag;

    private static final long serialVersionUID = 1L;

    /**
     * 负责单位ID
     */
    @ApiModelProperty(value = "负责单位ID")
    private String deptId;

    /**
     * 普测计划名称
     */
    @ApiModelProperty(value = "普测计划名称")
    private String planName;

    /**
     * 计划开始时间
     */
    @ApiModelProperty(value = "计划开始时间")
    private LocalDate planStartTime;

    /**
     * 计划结束时间
     */
    @ApiModelProperty(value = "计划结束时间")
    private LocalDate planEndTime;

    /**
     * 0 关联系统内变电站；1 用户手动输入变电站
     */
    @ApiModelProperty(value = "0 关联系统内变电站；1 用户手动输入变电站")
    private Integer customSubstationFlag;

    /**
     * 变电站台账ID或者用户手动输入的变电站名称
     */
    @ApiModelProperty(value = "变电站台账ID或者用户手动输入的变电站名称")
    private String substation;

    /**
     * 计划状态(1:审批中；2：审批通过；3：审批不通过；4：已取消)
     */
    @ApiModelProperty(value = "计划状态")
    private Integer status;

    /**
     * 流程实例id
     */
    @ApiModelProperty(value = "流程实例id")
    private String processInstanceId;

    /**
     * 历史流程实例id列表
     */
    @ApiModelProperty(value = "历史流程实例id列表")
    private String historyInstanceId;

    /**
     * 监督类型
     */
    @ApiModelProperty(value = "监督类型")
    private String supvType;

    /**
     * 监督对象名称
     */
    @ApiModelProperty(value = "监督对象名称")
    private String supvObjectName;


    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SurveyPlanUpdateParam extends SurveyPlanParam {

        @ApiModelProperty("id")
        @NotBlank(message = "索引不能为空")
        private String Id;



    }


    /**
     * 分页查询实体
     */
    @Data
    @EqualsAndHashCode(callSuper = true)
    public static class SurveyPlanQueryParam extends BaseParam {

        /**
         * 普测负责单位
         */
        String deptIndex;

        /**
         * 计划状态(1:审批中；2：审批通过；3：审批不通过；4：已取消)
         */
        @ApiModelProperty(value = "计划状态")
        private Integer status;
        @ApiModelProperty(value = " 监督类型")
        private String supvType;

    }

}
