package controlplane

// ControlPlaneAutoStartAction is the neutral, dependency-free enum naming the
// three container auto-start apply decisions produced by the bootstrap
// state-store classifier. The string values are the persisted/diagnostic wire
// values and must match the engine exactly.
//
// This type is pure data with no behavior. It is relocated here (with a
// verbatim alias left in internal/bootstrap) so the leaf runtimeports package
// can reference the BootstrapStateStore classifier's return shape without
// importing internal/bootstrap.
type ControlPlaneAutoStartAction string

const (
	// ControlPlaneAutoStartApply means run/retry the full ApplyAll.
	ControlPlaneAutoStartApply ControlPlaneAutoStartAction = "apply"
	// ControlPlaneAutoStartSkip means a completed ApplyAll marker (and release
	// backfill markers) are present; skip mutation and start.
	ControlPlaneAutoStartSkip ControlPlaneAutoStartAction = "skip"
	// ControlPlaneAutoStartHaltForMigration means a legacy pre-marker database
	// requires a one-time explicit operator migration before auto start.
	ControlPlaneAutoStartHaltForMigration ControlPlaneAutoStartAction = "halt-for-explicit-migration"
)

// ControlPlaneAutoStartDecision is the neutral result of the bootstrap
// state-store auto-start classifier: the chosen action plus a human-readable
// reason. Pure data, no behavior.
type ControlPlaneAutoStartDecision struct {
	Action ControlPlaneAutoStartAction
	Reason string
}
