package mediagen

import "{{GO_MODULE}}/pkg/routing"

// Strategy defines how the manager routes requests to providers.
//
// IMPORTANT: This is an alias for routing.Strategy. All routing strategies
// are defined in pkg/routing. Do NOT define new strategies here.
type Strategy = routing.Strategy

// Strategy constants - aliases for backward compatibility.
// New code should use routing.Strategy* directly.
const (
	// StrategyPrimaryOnly uses only the first provider in the list.
	// Fast, deterministic, but no fault tolerance.
	StrategyPrimaryOnly Strategy = routing.StrategyPrimaryOnly

	// StrategyFallback tries providers in order until one succeeds.
	// IMPORTANT: The last provider (terminus) is ALWAYS tried regardless
	// of cooldown state. This is the fallback of last resort.
	StrategyFallback Strategy = routing.StrategyFallback

	// StrategyRoundRobin distributes requests evenly across providers.
	// Balances load but requires state management.
	StrategyRoundRobin Strategy = routing.StrategyRoundRobin
)
