namespace Domain.Dtos
{
    public class QuoteItemDto
    {
        /// <summary>
        /// Identificador único del ítem dentro del presupuesto.
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Descripción del producto o servicio cotizado.
        /// </summary>
        public string Description { get; set; } = string.Empty;

        /// <summary>
        /// Cantidad de unidades cotizadas.
        /// </summary>
        public int Quantity { get; set; }

        /// <summary>
        /// Precio unitario sin incluir impuestos.
        /// </summary>
        public decimal UnitPrice { get; set; }

        /// <summary>
        /// Subtotal (Quantity × UnitPrice).
        /// </summary>
        public decimal Subtotal { get; set; }

        /// <summary>
        /// Importe de impuestos aplicados al ítem.
        /// </summary>
        public decimal TaxAmount { get; set; }

        /// <summary>
        /// Total del ítem (Subtotal + TaxAmount).
        /// </summary>
        public decimal Total { get; set; }

        /// <summary>
        /// Indica si el renglón fue aprobado durante el proceso de autorización.
        /// </summary>
        public bool Approved { get; set; }

        /// <summary>
        /// Cantidad aprobada para el renglón. Puede diferir de la cantidad originalmente cotizada.
        /// </summary>
        public int? ApprovedQuantity { get; set; }

        /// <summary>
        /// Precio unitario aprobado para el renglón.
        /// </summary>
        public decimal? ApprovedUnitPrice { get; set; }

        /// <summary>
        /// Importe total aprobado para el renglón.
        /// </summary>
        public decimal? ApprovedAmount { get; set; }
    }
}
