using ERP.TallerAutomotriz.Application.DTOs; using ERP.TallerAutomotriz.Domain.Enums; namespace ERP.TallerAutomotriz.Application.Interfaces; public interface ISalesService { // Facturas Task> ListarFacturasAsync(string? buscar, EstadoFactura? estado, int page, int pageSize, CancellationToken ct = default); Task ObtenerFacturaAsync(int id, CancellationToken ct = default); Task CrearFacturaAsync(FacturaFormDto dto, string? usuario, CancellationToken ct = default); Task CrearFacturaDesdeOTAsync(int ordenTrabajoId, string? usuario, CancellationToken ct = default); Task AnularFacturaAsync(int id, string? usuario, CancellationToken ct = default); // Pagos Task RegistrarPagoAsync(PagoFormDto dto, string? usuario, CancellationToken ct = default); // Cotizaciones Task> ListarCotizacionesAsync(string? buscar = null, CancellationToken ct = default); Task ObtenerCotizacionAsync(int id, CancellationToken ct = default); Task CrearCotizacionAsync(CotizacionFormDto dto, string? usuario, CancellationToken ct = default); Task ConvertirCotizacionEnFacturaAsync(int cotizacionId, string? usuario, CancellationToken ct = default); // Caja Task> ListarCajasAsync(CancellationToken ct = default); Task ObtenerEstadoCajaAsync(int cajaId, CancellationToken ct = default); Task AbrirCajaAsync(AperturaCajaDto dto, string? usuario, CancellationToken ct = default); Task CerrarCajaAsync(CierreCajaDto dto, string? usuario, CancellationToken ct = default); // Cuentas por cobrar Task> ListarCuentasCobrarAsync(bool soloVencidas = false, CancellationToken ct = default); }