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

namespace EventsAppQuest.Web.Producer.Domain
{
    /// <summary>
    /// Relatório final de execução do pedido: conclusão operacional e resumo para o hotel.
    /// </summary>
    [Serializable]
    public class ProducerExecutionFinalReport
    {
        public string ReportId;
        public string ProducerOrderId;
        public ProducerExecutionStatus ExecutionStatusAtClose;
        public DateTime? StartedAt;
        public DateTime? CompletedAt;
        public int FinalProgressPercent;
        public string FinalSummary;
        public string DeliveredScopeSummary;
        public string AdjustmentsMade;
        public string BlockingIssuesEncountered;
        public string CompletionNotes;
        public string PreparedByRole;
        public DateTime GeneratedAt;
        /// <summary>Quando o produtor concluiu operacionalmente o pedido.</summary>
        public DateTime? ClosedByProducerAt;
        /// <summary>Quando o hotel reconheceu o fechamento (opcional).</summary>
        public DateTime? HotelAcknowledgedAt;
        /// <summary>Itens detalhados: escopo entregue, ajustes, issues, bloqueios.</summary>
        public List<ProducerExecutionFinalReportItem> Items = new List<ProducerExecutionFinalReportItem>();
    }
}
