package net.northking.cctp.project.dto.project;

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

import javax.validation.constraints.Size;
import java.util.Date;

/**
 * 查询关联系统列表（需求、系统管理模板、属性模板、规则库、缺陷流程）
 */
public class ProjectLinkDetailDto {

    /**
     * 主键<br>
     */
    @ApiModelProperty("主键")
    @Size(max = 32, message="主键-id: 数据长度不能 > 32" )
    private String id;
    /**
     * 系统名称<br>
     */
    @ApiModelProperty("系统名称")
    @Size(max = 500, message="系统名称-name: 数据长度不能 > 500" )
    private String name;
    /**
     * 关联标记
     */
    @ApiModelProperty("关联标记 1-已关联")
    private Integer linked;
    /**
     * 系统负责人id<br>
     */
    @ApiModelProperty("系统负责人id 字符")
    private String userIdStr;
    /**
     * 系统负责人<br>
     */
    @ApiModelProperty("系统负责人")
    private String username;
    /**
     * 系统类型<br>
     */
    @ApiModelProperty("系统类型")
    @Size(max = 30, message="系统类型-projectType: 数据长度不能 > 20" )
    private String projectType;
    /**
     * 父系统主键<br>
     */
    @ApiModelProperty("父系统主键")
    @Size(max = 32, message="父系统主键-parentId: 数据长度不能 > 32" )
    private String parentId;
    /**
     * 祖先系统主键<br>
     */
    @ApiModelProperty("根系统主键")
    @Size(max = 32, message="根系统主键-ancestors: 数据长度不能 > 50" )
    private String rootId;
    /**
     * id路径<br>
     */
    @ApiModelProperty("id路径")
    @Size(max = 200, message="id路径-idPath: 数据长度不能 > 200" )
    private String idPath;
    /**
     * 是否叶子（Y是N否）<br>
     */
    @ApiModelProperty("是否叶子（Y是N否）")
    @Size(max = 10, message="是否叶子（Y是N否）-leaf: 数据长度不能 > 10" )
    private Boolean leaf;
    /**
     * 系统状态<br>
     */
    @ApiModelProperty("系统状态")
    private Integer status;
    /**
     * 删除标识符<br>
     */
    @ApiModelProperty("删除标识符")
    private Boolean deleted;

    /**
     * 创建人<br>
     */
    @ApiModelProperty("创建人")
    @Size(max = 32, message="创建人-createdBy: 数据长度不能 > 32" )
    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("修改人")
    @Size(max = 32, message="修改人-updatedBy: 数据长度不能 > 32" )
    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")
    @Size(max = 32, message="租户id-tenantId: 数据长度不能 > 32" )
    private String tenantId;

    private String code;

    /**
     * 系统名称模糊筛选标记 定位树级，避免全部展开
     */
    @ApiModelProperty("系统名称模糊筛选标记 定位树级，避免全部展开")
    private boolean signByName = false;

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getLinked() {
        return linked;
    }

    public void setLinked(Integer linked) {
        this.linked = linked;
    }

    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 String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }

    public String getParentId() {
        return 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;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Boolean getDeleted() {
        return deleted;
    }

    public void setDeleted(Boolean deleted) {
        this.deleted = deleted;
    }

    public String getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    public String getCreatedByName() {
        return createdByName;
    }

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

    public String getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Date getUpdatedTime() {
        return updatedTime;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public String getUpdatedByName() {
        return updatedByName;
    }

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

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public boolean isSignByName() {
        return signByName;
    }

    public void setSignByName(boolean signByName) {
        this.signByName = signByName;
    }

    public String getCode() {
        return code;
    }

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