using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;

namespace GMLC01HerramientasCad.Logica
{
    /// <summary>
    /// Definición el criterio de búsqueda para transmitir al módulo CAD
    /// </summary>
    public class CriterioBusqueda
    {
        /// <summary>
        /// Lista de criterios que forman la búsqueda
        /// </summary>
        public Collection<CriterioAtributo> Criterios { get; internal set; }
    }

    /// <summary>
    /// Define el criterio de búsqueda sobre un atributo
    /// </summary>
    public class CriterioAtributo
    {
        /// <summary>
        /// Definición del atributo de búsqueda. La propiedad Valor contiene el valor que se va a buscar
        /// </summary>
        public Atributo Atributo { get; internal set; }

        /// <summary>
        /// Define el tipo de búsqueda a realizar
        /// </summary>
        public TiposCriterios Tipo { get; internal set; }
    }

    /// <summary>
    /// Definición de los tipos de búsqueda implementados
    /// </summary>
    public enum TiposCriterios
    {
        /// <summary>
        /// Indica que no se va a buscar por este atributo
        /// </summary>
        Nada,
        /// <summary>
        /// 
        /// </summary>
        EsIgualA,
        /// <summary>
        /// 
        /// </summary>
        NoEsIgualA,
        /// <summary>
        /// 
        /// </summary>
        Contiene,
        /// <summary>
        /// 
        /// </summary>
        EmpiezaPor,
        /// <summary>
        /// 
        /// </summary>
        TerminaEn,
        /// <summary>
        /// 
        /// </summary>
        EsMayorQue,
        /// <summary>
        /// 
        /// </summary>
        EsMenorQue,
        /// <summary>
        /// 
        /// </summary>
        EsMayorOIgualQue,
        /// <summary>
        /// 
        /// </summary>
        EsMenorOIgualQue
   }
}
