chore(repo): reinitialize repository
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
package taskgraph
|
||||
|
||||
import "fmt"
|
||||
|
||||
type Status string
|
||||
|
||||
const (
|
||||
StatusDraft Status = "draft"
|
||||
StatusActive Status = "active"
|
||||
StatusSuperseded Status = "superseded"
|
||||
StatusCancelled Status = "cancelled"
|
||||
)
|
||||
|
||||
type Record struct {
|
||||
ID string `json:"id"`
|
||||
TopicID string `json:"topic_id"`
|
||||
Version int `json:"version"`
|
||||
Status Status `json:"status"`
|
||||
PlanJSON string `json:"plan_json"`
|
||||
PlanSummaryMarkdown string `json:"plan_summary_markdown"`
|
||||
CreatedByRoleName string `json:"created_by_role_name"`
|
||||
CreatedAt string `json:"created_at"`
|
||||
ConfirmedAt string `json:"confirmed_at,omitempty"`
|
||||
SupersedesGraphVersionID string `json:"supersedes_graph_version_id,omitempty"`
|
||||
}
|
||||
|
||||
func ValidateStatus(value Status) error {
|
||||
switch value {
|
||||
case StatusDraft, StatusActive, StatusSuperseded, StatusCancelled:
|
||||
return nil
|
||||
default:
|
||||
return fmt.Errorf("invalid task graph status %q", value)
|
||||
}
|
||||
}
|
||||
|
||||
func (r Record) Validate() error {
|
||||
if r.TopicID == "" {
|
||||
return fmt.Errorf("topic id is required")
|
||||
}
|
||||
if r.Version <= 0 {
|
||||
return fmt.Errorf("version must be greater than zero")
|
||||
}
|
||||
if r.PlanJSON == "" {
|
||||
return fmt.Errorf("plan json is required")
|
||||
}
|
||||
if r.CreatedByRoleName == "" {
|
||||
return fmt.Errorf("created by role is required")
|
||||
}
|
||||
return ValidateStatus(r.Status)
|
||||
}
|
||||
Reference in New Issue
Block a user