package jira

type IssueTriageTagType string

const (
	IssueTriageTagTypeScence         IssueTriageTagType = "scene"
	IssueTriageTagTypeRootCause      IssueTriageTagType = "root_cause"
	IssueTriageTagTypePreventability IssueTriageTagType = "preventability"
	IssueTriageTagTypeSolution       IssueTriageTagType = "solution"

	LabelScenceCategory    = "scene_category"
	LabelRootCauseCategory = "root_cause_category"
)

var (
	IssueTriageTagTypeValues = []IssueTriageTagType{
		IssueTriageTagTypeScence,
		IssueTriageTagTypeRootCause,
		IssueTriageTagTypePreventability,
		IssueTriageTagTypeSolution,
	}
)

type IssueTriageTagDefinition struct {
	Name        string             `json:"name"`
	Type        IssueTriageTagType `json:"type"`
	CreatedAt   int64              `json:"created_at"`
	Description string             `json:"description,omitempty"`
	Labels      map[string]string  `json:"labels,omitempty"`
} // @name jira.IssueTriageTagDefinition

type IssueTriageTags struct {
	Scene          *string `json:"scene,omitempty"`
	RootCause      *string `json:"root_cause,omitempty"`
	Preventability *string `json:"preventability,omitempty"`
	Solution       *string `json:"solution,omitempty"`
} // @name jira.IssueTriageTags

type IssueTriage struct {
	Key          string          `json:"key"`
	CreatedAt    int64           `json:"created_at"` // TODO: change to int64
	UpdatedAt    *int64          `json:"updated_at,omitempty"`
	BriefSummary *string         `json:"brief_summary,omitempty"`
	Tags         IssueTriageTags `json:"tags,omitempty"`
} // @name jira.IssueTriage
