package com.microservices.pms.project.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.microservices.common.core.annotation.Excel;
import com.microservices.common.core.web.domain.BaseEntity;
import lombok.Data;

import java.util.Date;

/**
 * 项目对象 pms_project
 * 
 * @author wanjia
 * @date 2023-10-11
 */
@Data
public class PmsProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目ID */
    private Long id;

    /**
     * 组织Id
     */
    private Long deptId;

    /** 项目标识 */
    @Excel(name = "项目标识")
    private String projectIdentifier;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private Long projectAssigneeId;

    /** 所属企业ID */
    @Excel(name = "所属企业ID")
    private Long pmsEnterpriseId;

    /** 所属产品ID */
    @Excel(name = "所属产品ID")
    private Long pmsProductId;

    /** 项目简介 */
    @Excel(name = "项目简介")
    private String projectDescription;

    /** 状态 0关闭 1开启 2暂停 */
    @Excel(name = "状态 0关闭 1开启 2暂停")
    private String status;

    /** 项目开启时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目开启时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 项目截止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 是否置顶 0不置顶 1置顶 */
    @Excel(name = "是否置顶 0不置顶 1置顶")
    private Integer isTop;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createTime;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updateTime;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private Integer isDeleted;


    @Excel(name = "公告id")
    private Long noticeId;

    /** 预留字段2 */
//    @Excel(name = "预留字段2")
    @JsonIgnore
    private String reservedField2;
}
