1#ifndef YAZE_CORE_PROJECT_PLAN_H_
2#define YAZE_CORE_PROJECT_PLAN_H_
8#include "absl/status/status.h"
9#include "absl/status/statusor.h"
10#include "nlohmann/json.hpp"
98 std::vector<std::string>
refs;
113 static absl::StatusOr<ProjectPlan>
Parse(std::string_view text);
115 const std::string& path, std::string* source =
nullptr);
120 const std::string& path);
124 absl::Status
SaveToFile(
const std::string& path)
const;
126 absl::Status
SaveToFile(
const std::string& path,
127 const std::string& expected_source)
const;
131 const std::string& expected_source,
132 const std::string& text);
140 absl::Status
RenameStep(std::string_view
id, std::string new_id);
141 absl::Status
RenameItem(std::string_view
id, std::string new_id);
144 int FindStep(std::string_view
id)
const;
145 std::vector<const PlanRouteItem*>
ItemsAtStep(std::string_view step)
const;
std::string Serialize() const
absl::Status SaveToFile(const std::string &path) const
static ProjectPlan CreateEmpty(std::string title)
std::string NewMilestoneId() const
static absl::StatusOr< ProjectPlan > Parse(std::string_view text)
static absl::Status CreateAndLink(project::YazeProject *project, const std::string &path)
std::vector< PlanReference > references
std::vector< const PlanRouteItem * > ItemsAtStep(std::string_view step) const
std::string NewStepId() const
const PlanMilestone * CurrentMilestone(std::string_view today) const
absl::Status ValidateIds() const
std::string NewDecisionId() const
std::vector< const PlanDecision * > OpenDecisions() const
std::vector< PlanMilestone > milestones
static absl::Status PublishSource(const std::string &path, const std::string &expected_source, const std::string &text)
std::string NewItemId() const
absl::Status RenameItem(std::string_view id, std::string new_id)
static absl::StatusOr< ProjectPlan > LoadFromFile(const std::string &path, std::string *source=nullptr)
std::vector< PlanRouteItem > route_items
int FindStep(std::string_view id) const
std::vector< PlanRouteStep > route_steps
std::vector< PlanDecision > decisions
absl::Status RenameStep(std::string_view id, std::string new_id)
constexpr std::string_view kProjectPlanSchema
nlohmann::ordered_json PlanJson
std::vector< std::string > targets
std::vector< std::string > refs
std::string recommendation
std::vector< PlanNeed > needs
std::vector< std::string > targets
static PlanTarget Parse(std::string_view text)
Modern project structure with comprehensive settings consolidation.