#ifndef ODF_MANAGEMENT_PROJECT_MILESTONE_HPP #define ODF_MANAGEMENT_PROJECT_MILESTONE_HPP #include #include /// @brief 里程碑阶段枚举 enum class MilestoneStage : uint8_t { Requirements = 0, ///< 需求确认 DesignReview = 1, ///< 设计评审 Prototype = 2, ///< 样机测试 Verification = 3, ///< 验证测试 Delivery = 4 ///< 批量交付 }; /** * @brief 项目里程碑信息 * * 记录 ODF 项目各关键节点的计划时间、负责人与完成状态。 * 约束:样机测试不得晚于第 6 周,最终交付不迟于第 12 周。 */ struct ProjectMilestone { MilestoneStage stage; ///< 阶段名称 uint32_t weekStart; ///< 计划开始周(从项目启动算起,第 1 周起) uint32_t weekEnd; ///< 计划结束周 std::string owner; ///< 负责人 bool completed; ///< 完成状态(true 已完成) /** * @brief 构造项目里程碑 * @param stage 阶段 * @param weekStart 计划开始周 * @param weekEnd 计划结束周 * @param owner 负责人 * @param completed 是否完成 */ ProjectMilestone(MilestoneStage stage, uint32_t weekStart, uint32_t weekEnd, std::string owner, bool completed); /// @brief 默认构造函数 ProjectMilestone() = default; /// @brief 阶段名称字符串 [[nodiscard]] std::string stageString() const; /// @brief 返回里程碑摘要 [[nodiscard]] std::string summary() const; /** * @brief 检查时间约束是否满足 * @return 满足返回 true * * 规则:样机测试(Prototype)结束周 ≤ 6,交付(Delivery)结束周 ≤ 12 */ [[nodiscard]] bool checkTimeConstraint() const; }; #endif // ODF_MANAGEMENT_PROJECT_MILESTONE_HPP