using ERP.TallerAutomotriz.Application.DTOs; namespace ERP.TallerAutomotriz.Application.Interfaces; public interface IInventoryService { // Repuestos Task> ListarRepuestosAsync(string? buscar, int? categoriaId, bool soloBajoStock, int page, int pageSize, CancellationToken ct = default); Task> ListarTodosRepuestosAsync(CancellationToken ct = default); Task ObtenerRepuestoAsync(int id, CancellationToken ct = default); Task CrearRepuestoAsync(RepuestoFormDto dto, string? usuario, CancellationToken ct = default); Task ActualizarRepuestoAsync(RepuestoFormDto dto, string? usuario, CancellationToken ct = default); Task EliminarRepuestoAsync(int id, CancellationToken ct = default); // Categorías Task> ListarCategoriasAsync(CancellationToken ct = default); // Almacenes Task> ListarAlmacenesAsync(CancellationToken ct = default); Task ObtenerAlmacenAsync(int id, CancellationToken ct = default); Task CrearAlmacenAsync(AlmacenFormDto dto, string? usuario, CancellationToken ct = default); Task ActualizarAlmacenAsync(AlmacenFormDto dto, string? usuario, CancellationToken ct = default); Task EliminarAlmacenAsync(int id, CancellationToken ct = default); // Movimientos Task> ListarMovimientosAsync(int? repuestoId, int? almacenId, DateTime? desde, DateTime? hasta, int page, int pageSize, CancellationToken ct = default); Task RegistrarMovimientoAsync(MovimientoFormDto dto, string? usuario, CancellationToken ct = default); }