package nodegroup

// NodeInstanceGroupState constants for the shortage handling state machine.
// These string constants are used by the storage layer (MySQL).
// For API/proto layer, use entity.NodeInstanceGroupStatus* constants (proto enum type).
//
// State transitions: Normal -> ShortageDetected -> FallbackCreating -> FallbackReady
//
//	-> Recovering -> DrainingFallback -> DeletingFallback -> Normal
const (
	NodeInstanceGroupStateNormal           = "normal"
	NodeInstanceGroupStateShortageDetected = "shortage_detected"
	NodeInstanceGroupStateFallbackCreating = "fallback_creating"
	NodeInstanceGroupStateFallbackReady    = "fallback_ready"
	NodeInstanceGroupStateRecovering       = "recovering"
	NodeInstanceGroupStateDrainingFallback = "draining_fallback"
	NodeInstanceGroupStateDeletingFallback = "deleting_fallback"
	NodeInstanceGroupStateDeprecated       = "deprecated"
)

// NodeInstanceGroup phase constants for region-level node instance group management.
const (
	NodeInstanceGroupStatusActive     = "active"
	NodeInstanceGroupStatusPending    = "pending"
	NodeInstanceGroupStatusDeprecated = "deprecated"
	NodeInstanceGroupStatusRetiring   = "retiring"
	NodeInstanceGroupStatusRetired    = "retired"
)

// DataplaneNodeInstanceGroupStatus constants for per-dataplane overrides.
const (
	DataplaneNodeInstanceGroupStatusActive     = "active"
	DataplaneNodeInstanceGroupStatusDeprecated = "deprecated"
	DataplaneNodeInstanceGroupStatusRetiring   = "retiring"
	DataplaneNodeInstanceGroupStatusRetired    = "retired"
)

// NodeInstanceGroupInstanceTypeStatus constants for instance type availability.
const (
	NodeInstanceGroupInstanceTypeStatusNormal   = "normal"
	NodeInstanceGroupInstanceTypeStatusDisabled = "disabled"
)
