Files

45 lines
997 B
Go

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
}