namespace Domain.Generics
{
    public class LSProductSearchParams : PagedRequest
    {
        /// <summary>
        /// Código interno o externo del producto (factory_code o external_code)
        /// </summary>
        public string? Code { get; set; }

        /// <summary>
        /// Nombre técnico o descripción comercial (name o descripcion)
        /// </summary>
        public string? Description { get; set; }

        /// <summary>
        /// Tipo de producto: 1=Implantable, 2=Instrumental, 3=Inyectable
        /// </summary>
        public int? ProductType { get; set; }

        /// <summary>
        /// Tipo de trazabilidad: 1=No aplica, 2=Por cantidad, 3=Por lote y vencimiento
        /// </summary>
        public int? TraceabilityType { get; set; }

        /// <summary>
        /// División técnica del producto (FK a ProductDivision)
        /// </summary>
        public int? DivisionId { get; set; }

        /// <summary>
        /// Unidad de medida base del producto (FK a UnitOfMeasure)
        /// </summary>
        public int? UnitId { get; set; }

        /// <summary>
        /// Indica si el producto requiere un proceso adicional como esterilización
        /// </summary>
        public bool? PlusProcess { get; set; }
    }
}

