using EventsAppQuest.Web.Producer.Domain;

namespace EventsAppQuest.Web.Producer.Application
{
    /// <summary>
    /// Indicadores de readiness: pronto para preparação/execução, bloqueado por aceite/escopo/esclarecimento, aguardando resolução.
    /// </summary>
    public static class ReadinessIndicatorHelper
    {
        public static string GetReadinessLabel(ProducerExecutionReadinessState state)
        {
            if (state == null) return "—";
            if (state.IsReadyForExecution) return "Pronto para execução";
            if (state.IsReadyForPreparation) return "Pronto para preparação";
            foreach (var b in state.BlockingItems)
            {
                if (b.IsResolved) continue;
                if (b.Code == ProducerExecutionReadinessController.BlockingAcceptancePending) return "Bloqueado por aceite";
                if (b.Code == ProducerExecutionReadinessController.BlockingScopeNotConfirmed) return "Bloqueado por escopo";
                if (b.Code == ProducerExecutionReadinessController.BlockingClarificationPending) return "Bloqueado por esclarecimento";
                if (b.Code == ProducerExecutionReadinessController.BlockingRevisionPending) return "Aguardando resolução interna";
            }
            return "Aguardando resolução interna";
        }
    }
}
