using Domain.Dtos.Stock; using Domain.Entities; using Domain.Generics; namespace Models.Interfaces { public interface IPhLSMProductRepository { /// /// Realiza una búsqueda paginada de productos según los parámetros provistos. /// /// Parámetros de búsqueda y paginación. /// Página de productos que cumplen con los filtros. Task> SearchAsync(LSProductSearchParams searchParams); /// /// Obtiene un producto por su identificador único. /// /// ID del producto. /// Producto encontrado o null si no existe. Task GetByIdAsync(int id); /// /// Inserta una lista de productos importados. Devuelve la cantidad de insertados y los omitidos/skipped. /// /// Lista de productos a importar (vista previa validada). /// Resultado de la importación con cantidades y errores. Task ImportProductsAsync(List items); /// /// Crea un nuevo producto en la base de datos. /// /// Entidad de producto a crear. /// Producto creado. Task CreateAsync(ELSProduct entity); /// /// Actualiza un producto existente. /// /// Entidad de producto con los datos actualizados. /// True si la actualización fue exitosa. Task UpdateAsync(ELSProduct entity); /// /// Elimina un producto por su identificador único. /// /// ID del producto a eliminar. /// True si la eliminación fue exitosa. Task DeleteAsync(int id); } }