using Core.Interfaces.Stock; // ILSStockScanDom using Domain.Dtos.Stock; // StockItemSearchParams, StockItemScanResultDto using Domain.Generics; // PagedResult using Microsoft.AspNetCore.Mvc; namespace API.Controllers.Stock { [Route("api/[controller]")] [ApiController] public class LSStockScanController : ControllerBase { private readonly ILSStockScanDom _service; public LSStockScanController(ILSStockScanDom service) { _service = service; } /// /// Búsqueda paginada de ítems de stock por código/texto, lote y filtros opcionales. /// [HttpPost("search")] public async Task>> Search([FromBody] StockItemSearchParams searchParams) { var result = await _service.SearchAsync(searchParams); return Ok(result); } /// Realiza una búsqueda paginada de ítems de stock utilizando datos ya parseados /// (por ejemplo, provenientes de un código GS1 escaneado). /// /// /// Parámetros de búsqueda ya procesados y listos para filtrar en base de datos, /// incluyendo código de producto, lote, fecha de vencimiento, ubicación, etc. /// /// /// Lista paginada de ítems de stock que cumplen con los filtros especificados. /// [HttpPost("search-parsed")] public async Task>> SearchParsed([FromBody] StockItemParsedSearchParams searchParams) { var result = await _service.SearchParsedAsync(searchParams); return Ok(result); } } }