package xiaoqu.home.open.controller.input.plan;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import xiaoqu.home.open.controller.input.matter.MatterUpdate;
import xiaoqu.home.open.controller.input.sceneObject.Scene;

import java.util.List;

@Data
@ApiModel(value = "例行/指派计划添加输入包")
public class PlanInsert {
    @ApiModelProperty("1站点Id")
    private Long districtId;
    @ApiModelProperty("任务名称")
    private String taskName;
    @ApiModelProperty(value = "1场景对象集合id")
    private List<Scene> scenes;
    @ApiModelProperty("计划类型(0:计划;1:系统监控;2:指派)")
    private Integer type;
    @ApiModelProperty(value = "1对象idList")
    private List<Long> objectIds;
    @ApiModelProperty(value = "1用户ids")
    private List<Long> userIds;
    @ApiModelProperty(value = "1班组ids")
    private List<Long> workGroupIds;
    @ApiModelProperty(value = "1作业idList")
    private List<Long> operationIds;
    @ApiModelProperty(value = "1任务标准/任务触发条件")
    private String taskStandard;
    @ApiModelProperty(value = "1任务方法/描述/要求")
    private String taskContent;
    @ApiModelProperty(value = "1任务要求")
    private String taskRequire;
    @ApiModelProperty(value = "1计划启用日期类型(0:系统默认;1:自定义启用日期)")
    private Integer startStatus;
    @ApiModelProperty(value = "1计划启用时间")
    private String startTime;
    ;
    @ApiModelProperty(value = "1计划结束时间")
    private String endTime;
    @ApiModelProperty(value = "1任务过期类型（0:不过期;1:第二天过期;2:指定时间过期）")
    private Integer expireType;
    @ApiModelProperty(value = "1过期时长")
    private String expireTiming;
    @ApiModelProperty(value = "1是否合作(0:否;1:是)")
    private Integer userStatus;
    @ApiModelProperty(value = "1任务人员操作类型(0:不限;1:指定人员;2:指定班组)")
    private Integer userType;


    @ApiModelProperty(value = "1跳过类型(0:不跳过;1:法定节假日;2:自定义日期)")
    private Integer eliminateType;
    @ApiModelProperty(value = "1跳过日期（月度逗号分隔）")
    private String eliminateTime;

    @ApiModelProperty(value = "2任务生成类型(0:定时;1:人流;2:立刻)")
    private Integer taskCreateType;
    @ApiModelProperty(value = "2触发人次(人流触发)")
    private Integer actionCount;
    //0:不重复;1:周期一次;2:周期多次;
    @ApiModelProperty(value = "2重复方式(0:不重复;1:重复方式一（周期重复）;2:重复方式二（间隔重复）)")
    private Integer circleStatus;
    @ApiModelProperty(value = "2重复周期(0:天;1:周;2:月;3:时)")
    private Integer circleType;
    @ApiModelProperty(value = "2周期内编号（格式待定 周1-7，月1-31等）（月度逗号分隔）")
    private String circleNo;
    @ApiModelProperty(value = "2是否为打包任务(0:否;1:是)")
    private Integer packageStatus;
    @ApiModelProperty(value = "2计划状态(0:启用;1:停用;2:结束)")
    private Integer status;
    @ApiModelProperty(value = "2是否跨域(0:否;1:是)")
    private Integer isCross;
    @ApiModelProperty(value = "2匹配是状态(0:否;1:是),具体传值待定")
    private Integer mustStatus;

    @ApiModelProperty("匹配是Id集合")
    private List<Long> mustLabelIds;
    @ApiModelProperty(value = "2匹配否状态(0:否;1:是),具体传值待定")
    private Integer notStatus;
    @ApiModelProperty("匹配否Id集合")
    private List<Long> notLabelIds;
    @ApiModelProperty("3时薪类型")
    private Long wageId;

    @ApiModelProperty(value = "3标准工时(分钟)/超时时间")
    private Integer workingTiming;
    @ApiModelProperty(value = "3转场时间(分钟)")
    private Integer transitionTiming;
    @ApiModelProperty(value = "3准备时间(分钟)")
    private Integer readyTiming;
    @ApiModelProperty(value = "3超时放宽时间(分钟)")
    private Integer redundanceTiming;


    @ApiModelProperty(value = "要求执行时段0：不限时段；1：自定义执行时段")
    private Integer actionTimeType;
    @ApiModelProperty(value = "任务生成开始时间（HH:MM）设备维护任务")
    private String actionStartTime;
    @ApiModelProperty(value = "任务生成结束时间（HH:MM）设备维护任务")
    private String actionEndTime;

    //    @ApiModelProperty(value = "对象名称")
//    private String objectName;
    @ApiModelProperty("id")
    private Long id;
//

    //    @ApiModelProperty(value = "事项集合")
//    private List<MatterUpdate> matterList;
//    @ApiModelProperty("排序")
//    private Integer sort;
//    @ApiModelProperty("备注")
//    private String memo;
//    @ApiModelProperty("id")
//    private Long id;
    @ApiModelProperty("任务优先级")
    private Integer taskOrder;

}
