/*
* Copyright (c) 京北方信息技术股份有限公司 Corporation 2022 . All rights reserved.
*
*/
package net.northking.cctp.executePlan.dto.planInfo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.util.List;

/**
* Restful接口--更新资源--数据传输对象：执行计划表
*
* createdate:  2022-12-06 11:32:04  <br>
* @author:  maven-cctp-plugin  <br>
* @since:  1.0 <br>
*/
@JsonSerialize
@ApiModel(description = "执行计划表")
public class AtuPlanInfoUpdateDto implements Serializable
{
    /**
     * 主键<br>
     */
    @ApiModelProperty("主键")
    @Size(max = 32, message="主键-id: 数据长度不能 > 32" )
    private String id;
    /**
     * 计划名称<br>
     */
    @ApiModelProperty("计划名称")
    @Size(max = 30, message="计划名称长度不能超过30" )
    private String planName;
    /**
     * 计划描述<br>
     */
    @ApiModelProperty("计划描述")
    @Size(max = 900, message="计划描述长度不能超过900" )
    private String planDesc;
    /**
     * 是否启用;0-否，1-是<br>
     */
    @ApiModelProperty("是否启用;0-否，1-是")
    private Boolean enabled;
    /**
     * 应用设置;1-清除数据，2-卸载安装<br>
     */
    @ApiModelProperty("应用设置;1-清除数据，2-卸载安装")
    @Size(max = 1, message="应用设置;1-清除数据，2-卸载安装-appSet: 数据长度不能 > 1" )
    private String appSet;
    /**
     * 录屏设置;0-不保存，1-全部保存，2-出错保存<br>
     */
    @ApiModelProperty("录屏设置;0-不保存，1-全部保存，2-出错保存")
    @Size(max = 1, message="录屏设置;0-不保存，1-全部保存，2-出错保存-screenRecordSet: 数据长度不能 > 1" )
    private String screenRecordSet;
    /**
     * 截图设置;0-不保存，1-全部保存，2-出错保存<br>
     */
    @ApiModelProperty("截图设置;0-不保存，1-全部保存，2-出错保存")
    @Size(max = 1, message="截图设置;0-不保存，1-全部保存，2-出错保存-screenshotSet: 数据长度不能 > 1" )
    private String screenshotSet;
    /**
     * 优先级;0-低，1-高<br>
     */
    @ApiModelProperty("优先级;0-低，1-高")
    @Size(max = 1, message="优先级;0-低，1-高-priority: 数据长度不能 > 1" )
    private String priority;
    /**
     * Cron表达式<br>
     */
    @ApiModelProperty("Cron表达式")
    @Size(max = 90, message="Cron表达式-cronExpr: 数据长度不能 > 90" )
    private String  cronExpr;
    /**
     * 前置计划ID<br>
     */
    @ApiModelProperty("前置计划ID")
    @Size(max = 32, message="前置计划ID-upFrontPlanId: 数据长度不能 > 32" )
    private String upFrontPlanId;
    /**
     * 触发链接<br>
     */
    @ApiModelProperty("触发链接")
    @Size(max = 255, message="触发链接-webhookUrl: 数据长度不能 > 255" )
    private String webhookUrl;
    /**
     * 密保令牌<br>
     */
    @ApiModelProperty("密保令牌")
    @Size(max = 32, message="密保令牌-webhookToken: 数据长度不能 > 32" )
    private String webhookToken;
    /**
     * 是否发送邮件;0-否，1-是<br>
     */
    @ApiModelProperty("是否发送邮件;0-否，1-是")
    private Boolean sendMail;
    /**
     * 邮件地址;当需要发送邮件时不能为空<br>
     */
    @ApiModelProperty("邮件地址;当需要发送邮件时不能为空")
    @Size(max = 500, message="邮件地址;当需要发送邮件时不能为空-mailAddress: 数据长度不能 > 500" )
    private String mailAddress;
    /**
     * 是否失败重试;0-否，1-是<br>
     */
    @ApiModelProperty("是否失败重试;0-否，1-是")
    private Boolean failRetry;
    /**
     * 失败重试次数<br>
     */
    @ApiModelProperty("失败重试次数")
    private Integer failRetryCount;
    /**
     * 是否失败生成计划;0-否，1-是<br>
     */
    @ApiModelProperty("是否失败生成计划;0-否，1-是")
    private Boolean failCreatePlan;

    @ApiModelProperty("软件集合")
    private List<AppList> appList;

    @ApiModelProperty("设备集合")
    private List<DeviceList> deviceList;

    @ApiModelProperty("是否勾选定时触发")
    private Boolean hasCorn;

    @ApiModelProperty("是否存在前置计划")
    private Boolean hasUpFront;

    @ApiModelProperty("是否webhook触发")
    private Boolean hasWebhook;

    @ApiModelProperty("系统id")
    private String projectId;
    @ApiModelProperty("选中的用例集")
    private List<SelectSets> selectSets;
    @ApiModelProperty("选中的环境")
    private List<String> envList;

    public List<String> getEnvList() {
        return envList;
    }

    public void setEnvList(List<String> envList) {
        this.envList = envList;
    }

    public List<SelectSets> getSelectSets() {
        return selectSets;
    }

    public void setSelectSets(List<SelectSets> selectSets) {
        this.selectSets = selectSets;
    }

    /**
     * 用例集类型;0-接口，1-pcbs，2-pccs，3-安卓，4-ios，5-场景<br>
     */
    @ApiModelProperty("用例集类型;0-接口，1-pcbs，2-pccs，3-安卓，4-ios，5-场景")
    private Integer setType;

    public Integer getSetType() {
        return setType;
    }

    public void setSetType(Integer setType) {
        this.setType = setType;
    }


    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public Boolean getHasCorn() {
        return hasCorn;
    }

    public void setHasCorn(Boolean hasCorn) {
        this.hasCorn = hasCorn;
    }

    public Boolean getHasUpFront() {
        return hasUpFront;
    }

    public void setHasUpFront(Boolean hasUpFront) {
        this.hasUpFront = hasUpFront;
    }

    public Boolean getHasWebhook() {
        return hasWebhook;
    }

    public void setHasWebhook(Boolean hasWebhook) {
        this.hasWebhook = hasWebhook;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPlanName() {
        return planName;
    }

    public void setPlanName(String planName) {
        this.planName = planName;
    }

    public String getPlanDesc() {
        return planDesc;
    }

    public void setPlanDesc(String planDesc) {
        this.planDesc = planDesc;
    }

    public Boolean getEnabled() {
        return enabled;
    }

    public void setEnabled(Boolean enabled) {
        this.enabled = enabled;
    }

    public String getAppSet() {
        return appSet;
    }

    public void setAppSet(String appSet) {
        this.appSet = appSet;
    }

    public String getScreenRecordSet() {
        return screenRecordSet;
    }

    public void setScreenRecordSet(String screenRecordSet) {
        this.screenRecordSet = screenRecordSet;
    }

    public String getScreenshotSet() {
        return screenshotSet;
    }

    public void setScreenshotSet(String screenshotSet) {
        this.screenshotSet = screenshotSet;
    }

    public String getPriority() {
        return priority;
    }

    public void setPriority(String priority) {
        this.priority = priority;
    }

    public String getCronExpr() {
        return cronExpr;
    }

    public void setCronExpr(String cronExpr) {
        this.cronExpr = cronExpr;
    }

    public String getUpFrontPlanId() {
        return upFrontPlanId;
    }

    public void setUpFrontPlanId(String upFrontPlanId) {
        this.upFrontPlanId = upFrontPlanId;
    }

    public String getWebhookUrl() {
        return webhookUrl;
    }

    public void setWebhookUrl(String webhookUrl) {
        this.webhookUrl = webhookUrl;
    }

    public String getWebhookToken() {
        return webhookToken;
    }

    public void setWebhookToken(String webhookToken) {
        this.webhookToken = webhookToken;
    }

    public Boolean getSendMail() {
        return sendMail;
    }

    public void setSendMail(Boolean sendMail) {
        this.sendMail = sendMail;
    }

    public String getMailAddress() {
        return mailAddress;
    }

    public void setMailAddress(String mailAddress) {
        this.mailAddress = mailAddress;
    }

    public Boolean getFailRetry() {
        return failRetry;
    }

    public void setFailRetry(Boolean failRetry) {
        this.failRetry = failRetry;
    }

    public Integer getFailRetryCount() {
        return failRetryCount;
    }

    public void setFailRetryCount(Integer failRetryCount) {
        this.failRetryCount = failRetryCount;
    }

    public Boolean getFailCreatePlan() {
        return failCreatePlan;
    }

    public void setFailCreatePlan(Boolean failCreatePlan) {
        this.failCreatePlan = failCreatePlan;
    }

    public List<AppList> getAppList() {
        return appList;
    }

    public void setAppList(List<AppList> appList) {
        this.appList = appList;
    }

    public List<DeviceList> getDeviceList() {
        return deviceList;
    }

    public void setDeviceList(List<DeviceList> deviceList) {
        this.deviceList = deviceList;
    }
}