using EventsAppQuest.Web.Producer.Domain;

namespace EventsAppQuest.Web.Producer.Application
{
    /// <summary>
    /// Indicadores do checklist: iniciado, em andamento, pendências obrigatórias, preparação confirmada, pronto para iniciar preparação.
    /// </summary>
    public static class ChecklistIndicatorHelper
    {
        public static string GetChecklistLabel(ProducerPreparationChecklistState state)
        {
            if (state == null) return "—";
            if (state.IsPreparationConfirmed)
                return "Preparação confirmada";
            if (state.TotalItems == 0)
                return "—";
            if (state.CompletedRequiredItems < state.RequiredItems)
                return "Pendências obrigatórias";
            if (state.CompletedItems < state.TotalItems)
                return "Checklist em andamento";
            return "Pronto para iniciar preparação operacional";
        }

        /// <summary>Rótulo curto para vista resumida (hotel).</summary>
        public static string GetChecklistSummaryLabel(ProducerPreparationChecklistState state)
        {
            if (state == null) return "—";
            if (state.IsPreparationConfirmed) return "Preparação confirmada";
            if (state.RequiredItems > 0 && state.CompletedRequiredItems < state.RequiredItems)
                return state.RequiredItems - state.CompletedRequiredItems + " pendência(s) obrigatória(s)";
            return state.CompletedItems + "/" + state.TotalItems + " itens";
        }
    }
}
