package dispatch

type Context struct {
	IssueKey string `gorm:"column:issue_key;type:varchar(255);primaryKey"`
	// CurrentSupportTier is no longer part of the dispatch domain, but existing databases
	// retain this non-null column without a default. Keep writing its empty legacy value
	// until a dedicated schema cleanup removes the column.
	CurrentSupportTier string `gorm:"column:current_support_tier;type:varchar(16);not null"`
	Assignee           string `gorm:"column:assignee;type:varchar(320);not null;default:''"`
	AssigneeL2         string `gorm:"column:assignee_l2;type:varchar(320);not null;default:''"`

	TriageIssueType        *string  `gorm:"column:triage_issue_type;type:varchar(32)"`
	TriageComponentsJSON   *string  `gorm:"column:triage_components_json;type:json"`
	TriageSeverity         *string  `gorm:"column:triage_severity;type:varchar(2)"`
	TriageProjectLevel     *bool    `gorm:"column:triage_project_level"`
	TriageLanguage         *string  `gorm:"column:triage_language;type:varchar(16)"`
	TriageReasoningSummary *string  `gorm:"column:triage_reasoning_summary;type:text"`
	TriageConfidenceScore  *float64 `gorm:"column:triage_confidence_score;type:decimal(5,4)"`
	TriageIssueUpdatedAt   *int64   `gorm:"column:triage_issue_updated_at"`
	TriageExecutionID      *uint64  `gorm:"column:triage_execution_id"`

	AssignmentNotificationStateJSON []byte `gorm:"column:assignment_notification_state_json;type:json"`
}

func (Context) TableName() string {
	return "dispatch_contexts"
}
