52 lines
2.1 KiB
Go
52 lines
2.1 KiB
Go
package issue
|
|
|
|
// Column is the kanban board column identifier.
|
|
type Column string
|
|
|
|
const (
|
|
ColumnTodo Column = "todo"
|
|
ColumnInProgress Column = "in-progress"
|
|
ColumnReview Column = "review"
|
|
ColumnDone Column = "done"
|
|
)
|
|
|
|
var validColumns = map[Column]bool{
|
|
ColumnTodo: true,
|
|
ColumnInProgress: true,
|
|
ColumnReview: true,
|
|
ColumnDone: true,
|
|
}
|
|
|
|
// Issue is the domain model for a kanban card, mirroring the TypeScript Issue
|
|
// type in types.ts (youtrack fields omitted: source, externalId, attachments).
|
|
// JSON tags use camelCase to match the state blob format in comments.
|
|
type Issue struct {
|
|
Number int `json:"number"`
|
|
Title string `json:"title"`
|
|
Column Column `json:"column"`
|
|
SessionID string `json:"sessionId,omitempty"`
|
|
ProfilePath string `json:"profilePath,omitempty"`
|
|
TestProfilePath string `json:"testProfilePath,omitempty"`
|
|
SpecFile string `json:"specFile,omitempty"`
|
|
PlanFile string `json:"planFile,omitempty"`
|
|
PrDiffFile string `json:"prDiffFile,omitempty"`
|
|
PR string `json:"pr,omitempty"`
|
|
PrMerged bool `json:"prMerged,omitempty"`
|
|
PrMergedAt string `json:"prMergedAt,omitempty"`
|
|
Branch string `json:"branch,omitempty"`
|
|
WorktreePath string `json:"worktreePath,omitempty"`
|
|
WorktreeExists bool `json:"worktreeExists,omitempty"`
|
|
ImplementStatus string `json:"implementStatus,omitempty"`
|
|
ImplementSessionID string `json:"implementSessionId,omitempty"`
|
|
ReviewSessionID string `json:"reviewSessionId,omitempty"`
|
|
TestSessionID string `json:"testSessionId,omitempty"`
|
|
HTMLURL string `json:"htmlUrl,omitempty"`
|
|
Prerequisite int `json:"prerequisite,omitempty"`
|
|
Color string `json:"color,omitempty"`
|
|
AutoReview *bool `json:"autoReview,omitempty"`
|
|
BrainstormTabOpen bool `json:"brainstormTabOpen,omitempty"`
|
|
ImplementTabOpen bool `json:"implementTabOpen,omitempty"`
|
|
ReviewTabOpen bool `json:"reviewTabOpen,omitempty"`
|
|
TestTabOpen bool `json:"testTabOpen,omitempty"`
|
|
}
|