using EventsAppQuest.Web.Producer.Core;
using EventsAppQuest.Web.Producer.Domain;

namespace EventsAppQuest.Web.Producer.Application
{
    /// <summary>
    /// Mapeia status de aceite e estado do pedido para rótulos de indicador (hotel e produtor).
    /// </summary>
    public static class HandoffIndicatorHelper
    {
        public static string GetIndicatorLabel(ProducerOrder order)
        {
            if (order == null) return "—";
            if (order.RequiresClarification)
                return "Precisa esclarecer escopo";
            switch (order.AcceptanceStatus)
            {
                case ProducerAcceptanceStatus.PendingReview:
                    return "Aguardando aceite do produtor";
                case ProducerAcceptanceStatus.Accepted:
                    return order.ProducerOrderStatus == ProducerOrderStatus.InPreparation
                        ? "Pronto para avançar"
                        : "Aceito para preparação";
                case ProducerAcceptanceStatus.Rejected:
                    return "Rejeitado pelo produtor";
                case ProducerAcceptanceStatus.NeedsClarification:
                    return "Precisa esclarecer escopo";
                default:
                    return order.AcceptanceStatus.ToString();
            }
        }
    }
}
