package topic import "fmt" type Space string const ( SpaceClarify Space = "clarify" SpaceWorkflow Space = "workflow" ) type Record struct { ID string `json:"id"` WorkspaceID string `json:"workspace_id"` Slug string `json:"slug"` Title string `json:"title"` Space Space `json:"space"` Status string `json:"status"` Summary string `json:"summary,omitempty"` CreatedAt string `json:"created_at"` UpdatedAt string `json:"updated_at"` ClosedAt string `json:"closed_at,omitempty"` } func (r Record) Validate() error { if r.WorkspaceID == "" { return fmt.Errorf("workspace id is required") } if r.Slug == "" { return fmt.Errorf("topic slug is required") } if r.Title == "" { return fmt.Errorf("topic title is required") } switch r.Space { case SpaceClarify, SpaceWorkflow: default: return fmt.Errorf("invalid topic space %q", r.Space) } if r.Status == "" { return fmt.Errorf("topic status is required") } return nil }