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

namespace EventsAppQuest.Web.Communication.Application
{
    /// <summary>
    /// Indicadores operacionais de comunicação hotel ↔ produtor (aguardando resposta, esclarecimento, ativa, pronto).
    /// </summary>
    public static class CommunicationIndicatorHelper
    {
        public static string GetCommunicationLabel(ProducerAcceptanceStatus acceptanceStatus, bool requiresClarification, CommunicationMessage lastMessage)
        {
            if (requiresClarification && lastMessage != null && lastMessage.MessageType == CommunicationMessageType.ClarificationRequest)
            {
                if (lastMessage.SenderRole == CommunicationParticipantRole.Producer)
                    return "Aguardando resposta do hotel";
                if (lastMessage.SenderRole == CommunicationParticipantRole.HotelSales || lastMessage.SenderRole == CommunicationParticipantRole.HotelAdmin)
                    return "Aguardando resposta do produtor";
            }
            if (requiresClarification)
                return "Escopo em esclarecimento";
            if (lastMessage != null)
                return "Comunicação ativa";
            if (acceptanceStatus == ProducerAcceptanceStatus.Accepted)
                return "Pronto para seguir";
            return "Comunicação";
        }
    }
}
