using System;
using EventsAppQuest.Domain.Enums;

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Snapshot simples de uma versão da proposta para comparação.
    /// </summary>
    [Serializable]
    public class ProposalVersionSnapshot
    {
        /// <summary>Identificador único do snapshot.</summary>
        public string Id { get; set; }

        /// <summary>Nome ou rótulo da versão (ex.: Versão 1, Proposta inicial).</summary>
        public string Name { get; set; }

        /// <summary>Data/hora de criação (texto para exibição).</summary>
        public string CreatedAt { get; set; }

        /// <summary>Id do tema visual no momento do snapshot.</summary>
        public string ThemeId { get; set; }

        /// <summary>Id do preset aplicado (se houver).</summary>
        public string PresetId { get; set; }

        /// <summary>Valor total estimado no momento do snapshot.</summary>
        public float TotalEstimatedPrice { get; set; }

        /// <summary>Quantidade de fornecedores envolvidos.</summary>
        public int SupplierCount { get; set; }

        /// <summary>Quantidade de itens do showroom na proposta.</summary>
        public int ShowroomItemCount { get; set; }

        /// <summary>Status da validação da composição no momento do snapshot.</summary>
        public CompositionValidationStatus ValidationStatus { get; set; }

        /// <summary>Notas opcionais.</summary>
        public string Notes { get; set; }
    }
}
