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

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


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

/**
 * Restful接口--资源详情--数据传输对象：系统基本信息表
 *
 * createdate:  2021-09-09 01:38:32  <br>
 * @author:  maven-cctp-plugin  <br>
 * @since:  1.0 <br>
 */
@JsonSerialize
@ApiModel(description = "系统基本信息详情")
public class CpProjectDetailDto implements Serializable
{
    // TODO 请完成资源详情展示的属性
    /**
     * 主键<br>
     */
    @ApiModelProperty("主键")
    private String id;
    /**
     * 系统名称<br>
     */
    @ApiModelProperty("系统名称")
    private String name;
    /**
     * 系统描述<br>
     */
    @ApiModelProperty("系统描述")
    private String memo;

    /**
     * 系统选中的软件<br>
     */
    @ApiModelProperty("系统选中的软件")
    private List<String> softwareId;
    /**
     * 系统负责人id<br>
     */
    @ApiModelProperty("系统负责人id")
    private List<String> userId;
    /**
     * 系统负责人id<br>
     */
    @ApiModelProperty("系统负责人id 字符")
    private String userIdStr;
    /**
     * 系统负责人<br>
     */
    @ApiModelProperty("系统负责人")
    private String username;

    /**
     * 系统类型<br>
     */
    @ApiModelProperty("系统类型")
    private String projectType;
    private List<String> projectTypes;
    /**
     * 父系统主键<br>
     */
    @ApiModelProperty("父系统主键")
    private String parentId;
    /**
     * 祖先系统主键<br>
     */
    @ApiModelProperty("根系统主键")
    private String rootId;
    /**
     * id路径<br>
     */
    @ApiModelProperty("id路径")
    private String idPath;
    /**
     * 是否叶子（Y是N否）<br>
     */
    @ApiModelProperty("是否叶子（Y是N否）")
    private Boolean leaf;
    /**
     * 系统状态<br>
     */
    @ApiModelProperty("系统状态")
    private Integer status;
    /**
     * 系统开始时间<br>
     */
    @ApiModelProperty("系统开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;
    /**
     * 计划上线日期<br>
     */
    @ApiModelProperty("计划上线日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date productionTime;
    /**
     * 删除标识符<br>
     */
    @ApiModelProperty("删除标识符")
    private Boolean deleted;
    /**
     * 创建人<br>
     */
    @ApiModelProperty("创建人")
    private String createdBy;
    /**
     * 创建时间<br>
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdTime;

    @ApiModelProperty("创建人名称")
    private String createdByName;
    /**
     * 修改人<br>
     */
    @ApiModelProperty("修改人")
    private String updatedBy;
    /**
     * 修改时间<br>
     */
    @ApiModelProperty("修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updatedTime;

    @ApiModelProperty("修改人名称")
    private String updatedByName;
    /**
     * 租户id<br>
     */
    @ApiModelProperty("租户id")
    private String tenantId;

    @ApiModelProperty("系统管理模板名称")
    private String templateName;

    @ApiModelProperty("系统层级")
    private Integer layerNum;

    @ApiModelProperty("系统层级类型定义")
    private Integer layerType;

    @ApiModelProperty("系统用例属性模板id")
    private String caseId;

    @ApiModelProperty("系统缺陷属性模板id")
    private String defectId;
    /**
     * 系统所属系统
     */
    @ApiModelProperty("系统所属系统")
    private String owningSystem;

    /**
     * 系统级规则集合id<br>
     */
    @ApiModelProperty("系统级规则集合id")
    private String ruleCollectionId;

    /**
     * 系统缺陷流程id<br>
     */
    @ApiModelProperty("系统缺陷流程id")
    private String bugProcessId;

    /**
     * 实施缺陷流程id<br>
     */
    @ApiModelProperty("系统缺陷流程id")
    private String implementProcessId;

    @ApiModelProperty("系统列表筛选标记 定位树级，避免全部展开")
    private boolean signProject = false;

    @ApiModelProperty("系统是否可建子系统 true可建 false不可建")
    private boolean isCreated;

    @ApiModelProperty("用例缺陷属性模板是否能修改标记符 true 能 false 不能")
    private boolean caseDefectTag = true;

    @ApiModelProperty("用例属性模板是否能修改标记符 true 能 false 不能")
    private boolean caseManualTest = true;

    @ApiModelProperty("规则：系统已产生产物不可删除 true 能删除 false 不能")
    private boolean dataDeleteTag;

    @ApiModelProperty("规则：系统已有子系统不可删除  true 能删除 false 不能")
    private boolean childDeleteTag;

    private String code;

    private String outCode;

    private String projectStatus;


    private List<String> envIds;

    private List<String> envNames;
    /*---------------------------------------------*/

    public boolean isCaseManualTest() {
        return caseManualTest;
    }

    public void setCaseManualTest(boolean caseManualTest) {
        this.caseManualTest = caseManualTest;
    }

    /**
     * 主键<br>
     */
    public String getId()
    {
        return id;
    }

    /**
     * 主键<br>
     *
     * @param id 主键
     */
    public void setId(String id)
    {
        this.id = id;
    }
    /**
     * 系统名称<br>
     */
    public String getName()
    {
        return name;
    }

    /**
     * 系统名称<br>
     *
     * @param name 系统名称
     */
    public void setName(String name)
    {
        this.name = name;
    }
    /**
     * 系统描述<br>
     */
    public String getMemo()
    {
        return memo;
    }

    /**
     * 系统描述<br>
     *
     * @param memo 系统描述
     */
    public void setMemo(String memo)
    {
        this.memo = memo;
    }
    /**
     * 系统类型<br>
     */
    public String getProjectType()
    {
        return projectType;
    }

    /**
     * 系统类型<br>
     *
     * @param projectType 系统类型
     */
    public void setProjectType(String projectType)
    {
        this.projectType = projectType;
    }

    public List<String> getProjectTypes() {
        return projectTypes;
    }

    public void setProjectTypes(List<String> projectTypes) {
        this.projectTypes = projectTypes;
    }

    /**
     * 父系统主键<br>
     */
    public String getParentId()
    {
        return parentId;
    }

    /**
     * 父系统主键<br>
     *
     * @param parentId 父系统主键
     */
    public void setParentId(String parentId)
    {
        this.parentId = parentId;
    }

    public String getRootId() {
        return rootId;
    }

    public void setRootId(String rootId) {
        this.rootId = rootId;
    }

    public String getIdPath() {
        return idPath;
    }

    public void setIdPath(String idPath) {
        this.idPath = idPath;
    }

    public Boolean getLeaf() {
        return leaf;
    }

    public void setLeaf(Boolean leaf) {
        this.leaf = leaf;
    }

    /**
     * 系统状态<br>
     */
    public Integer getStatus()
    {
        return status;
    }

    /**
     * 系统状态<br>
     *
     * @param status 系统状态
     */
    public void setStatus(Integer status)
    {
        this.status = status;
    }
    /**
     * 系统开始时间<br>
     */
    public Date getStartTime()
    {
        if(startTime != null)
        {
            return (Date)startTime.clone();
        }
        return null;
    }

    /**
     * 系统开始时间<br>
     *
     * @param startTime 系统开始时间
     */
    public void setStartTime(Date startTime)
    {
        if(startTime != null)
        {
            this.startTime = (Date)startTime.clone();
        }
    }
    /**
     * 计划上线日期<br>
     */
    public Date getProductionTime()
    {
        if(productionTime != null)
        {
            return (Date)productionTime.clone();
        }
        return null;
    }

    /**
     * 计划上线日期<br>
     *
     * @param productionTime 计划上线日期
     */
    public void setProductionTime(Date productionTime)
    {
        if(productionTime != null)
        {
            this.productionTime = (Date)productionTime.clone();
        }
    }
    /**
     * 删除标识符<br>
     */
    public Boolean getDeleted()
    {
        return deleted;
    }

    /**
     * 删除标识符<br>
     *
     * @param deleted 删除标识符
     */
    public void setDeleted(Boolean deleted)
    {
        this.deleted = deleted;
    }
    /**
     * 创建人<br>
     */
    public String getCreatedBy()
    {
        return createdBy;
    }

    /**
     * 创建人<br>
     *
     * @param createdBy 创建人
     */
    public void setCreatedBy(String createdBy)
    {
        this.createdBy = createdBy;
    }
    /**
     * 创建时间<br>
     */
    public Date getCreatedTime()
    {
        if(createdTime != null)
        {
            return (Date)createdTime.clone();
        }
        return null;
    }

    /**
     * 创建时间<br>
     *
     * @param createdTime 创建时间
     */
    public void setCreatedTime(Date createdTime)
    {
        if(createdTime != null)
        {
            this.createdTime = (Date)createdTime.clone();
        }
    }
    /**
     * 修改人<br>
     */
    public String getUpdatedBy()
    {
        return updatedBy;
    }

    /**
     * 修改人<br>
     *
     * @param updatedBy 修改人
     */
    public void setUpdatedBy(String updatedBy)
    {
        this.updatedBy = updatedBy;
    }
    /**
     * 修改时间<br>
     */
    public Date getUpdatedTime()
    {
        if(updatedTime != null)
        {
            return (Date)updatedTime.clone();
        }
        return null;
    }

    /**
     * 修改时间<br>
     *
     * @param updatedTime 修改时间
     */
    public void setUpdatedTime(Date updatedTime)
    {
        if(updatedTime != null)
        {
            this.updatedTime = (Date)updatedTime.clone();
        }
    }

    public String getCreatedByName() {
        return createdByName;
    }

    public void setCreatedByName(String createdByName) {
        this.createdByName = createdByName;
    }

    public String getUpdatedByName() {
        return updatedByName;
    }

    public void setUpdatedByName(String updatedByName) {
        this.updatedByName = updatedByName;
    }

    /**
     * 租户id<br>
     */
    public String getTenantId()
    {
        return tenantId;
    }

    /**
     * 租户id<br>
     *
     * @param tenantId 租户id
     */
    public void setTenantId(String tenantId)
    {
        this.tenantId = tenantId;
    }

    public String getTemplateName() {
        return templateName;
    }

    public void setTemplateName(String templateName) {
        this.templateName = templateName;
    }

    public List<String> getSoftwareId() {
        return softwareId;
    }

    public void setSoftwareId(List<String> softwareId) {
        this.softwareId = softwareId;
    }

    public List<String> getUserId() {
        return userId;
    }

    public void setUserId(List<String> userId) {
        this.userId = userId;
    }

    public String getUserIdStr() {
        return userIdStr;
    }

    public void setUserIdStr(String userIdStr) {
        this.userIdStr = userIdStr;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getLayerNum() {
        return layerNum;
    }

    public void setLayerNum(Integer layerNum) {
        this.layerNum = layerNum;
    }

    public boolean isCreated() {
        return isCreated;
    }

    public void setCreated(boolean created) {
        isCreated = created;
    }

    public String getCaseId() {
        return caseId;
    }

    public void setCaseId(String caseId) {
        this.caseId = caseId;
    }

    public String getDefectId() {
        return defectId;
    }

    public void setDefectId(String defectId) {
        this.defectId = defectId;
    }

    public boolean isSignProject() {
        return signProject;
    }

    public void setSignProject(boolean signProject) {
        this.signProject = signProject;
    }

    public String getOwningSystem() {
        return owningSystem;
    }

    public void setOwningSystem(String owningSystem) {
        this.owningSystem = owningSystem;
    }

    public String getRuleCollectionId() {
        return ruleCollectionId;
    }

    public void setRuleCollectionId(String ruleCollectionId) {
        this.ruleCollectionId = ruleCollectionId;
    }

    public String getBugProcessId() {
        return bugProcessId;
    }

    public void setBugProcessId(String bugProcessId) {
        this.bugProcessId = bugProcessId;
    }

    public boolean isCaseDefectTag() {
        return caseDefectTag;
    }

    public void setCaseDefectTag(boolean caseDefectTag) {
        this.caseDefectTag = caseDefectTag;
    }

    public boolean isDataDeleteTag() {
        return dataDeleteTag;
    }

    public void setDataDeleteTag(boolean dataDeleteTag) {
        this.dataDeleteTag = dataDeleteTag;
    }

    public boolean isChildDeleteTag() {
        return childDeleteTag;
    }

    public void setChildDeleteTag(boolean childDeleteTag) {
        this.childDeleteTag = childDeleteTag;
    }

    public Integer getLayerType() {
        return layerType;
    }

    public void setLayerType(Integer layerType) {
        this.layerType = layerType;
    }

    public String getImplementProcessId() {
        return implementProcessId;
    }

    public void setImplementProcessId(String implementProcessId) {
        this.implementProcessId = implementProcessId;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getOutCode() {
        return outCode;
    }

    public void setOutCode(String outCode) {
        this.outCode = outCode;
    }
    public String getProjectStatus() {
        return projectStatus;
    }

    public void setProjectStatus(String projectStatus) {
        this.projectStatus = projectStatus;
    }

    public List<String> getEnvIds() {
        return envIds;
    }

    public void setEnvIds(List<String> envIds) {
        this.envIds = envIds;
    }

    public List<String> getEnvNames() {
        return envNames;
    }

    public void setEnvNames(List<String> envNames) {
        this.envNames = envNames;
    }
}