using System;
using EventsAppQuest.Web.Producer.Core;

namespace EventsAppQuest.Web.Producer.Domain
{
    /// <summary>
    /// Estado do aceite final do hotel: revisão do relatório do produtor, aceite/rejeição/ajuste e encerramento do ciclo.
    /// </summary>
    [Serializable]
    public class HotelFinalAcceptanceState
    {
        public string ProducerOrderId;
        /// <summary>True enquanto o hotel ainda não tomou decisão final (aceitar/rejeitar/solicitar ajuste).</summary>
        public bool IsHotelAcceptanceOpen;
        public HotelFinalAcceptanceStatus AcceptanceStatus;
        public DateTime? AcceptedAt;
        public DateTime? RejectedAt;
        /// <summary>Hotel solicitou ajuste final (sem rejeitar definitivamente).</summary>
        public bool NeedsFinalAdjustment;
        public string FinalAcceptanceSummary;
        public string HotelAcceptanceNotes;
        /// <summary>Quando o ciclo do pedido foi formalmente encerrado.</summary>
        public DateTime? ClosedAt;
        public bool IsOrderCycleClosed;
    }
}
