package cn.yinlihupo.domain.entity; import cn.yinlihupo.common.handler.JsonbTypeHandler; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; /** * 项目时间节点实体类 * 对应数据库表: project_timeline */ @Data @TableName("project_timeline") public class ProjectTimeline { @TableId(type = IdType.ASSIGN_ID) private Long id; /** * 项目ID */ private Long projectId; /** * 节点名称 */ private String nodeName; /** * 节点类型: phase-阶段, milestone-里程碑, event-事件, checkpoint-检查点 */ private String nodeType; /** * 父节点ID */ private Long parentId; /** * 计划日期 */ private LocalDate planDate; /** * 实际日期 */ private LocalDate actualDate; /** * 描述 */ private String description; /** * 状态: pending-待开始, in_progress-进行中, completed-已完成, delayed-延期 */ private String status; /** * 排序 */ private Integer sortOrder; /** * 知识库范围配置["report","file","risk","ticket"] */ @TableField(typeHandler = JsonbTypeHandler.class) private List kbScope; /** * 扩展数据 */ @TableField(typeHandler = JsonbTypeHandler.class) private Object extraData; /** * 创建时间 */ @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; /** * 更新时间 */ @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; /** * 删除标记 */ @TableLogic private Integer deleted; }