using System;
using System.Collections.Generic;
using EventsAppQuest.Domain.Enums;

namespace EventsAppQuest.Domain.Models
{
    /// <summary>
    /// Fornecedor / prestador de servico que monta propostas e showrooms.
    /// </summary>
    [Serializable]
    public class Supplier
    {
        /// <summary>Identificador unico.</summary>
        public string Id { get; set; }

        /// <summary>Nome ou razao social.</summary>
        public string Name { get; set; }

        /// <summary>Descricao dos servicos oferecidos.</summary>
        public string Description { get; set; }

        /// <summary>Status na plataforma.</summary>
        public SupplierStatus Status { get; set; }

        /// <summary>Contato (email ou telefone).</summary>
        public string Contact { get; set; }

        /// <summary>Tipos de item que o fornecedor suporta (decoração, buffet, iluminação, etc.).</summary>
        public List<ShowroomItemType> SupportedItemTypes { get; set; } = new List<ShowroomItemType>();

        /// <summary>Se true, o fornecedor suporta montagem antecipada.</summary>
        public bool SupportsEarlySetup { get; set; }

        /// <summary>Se true, o fornecedor suporta execução no local (on-site).</summary>
        public bool SupportsOnSiteExecution { get; set; }

        /// <summary>Nível de prioridade/capacidade do fornecedor (0-10; maior = mais capacidade).</summary>
        public int SupplierPriorityLevel { get; set; }

        /// <summary>Faixa de capacidade (ex.: Basic, Standard, Premium).</summary>
        public string CapacityTier { get; set; }
    }
}
