using ERP.TallerAutomotriz.Application.DTOs; using ERP.TallerAutomotriz.Domain.Enums; namespace ERP.TallerAutomotriz.Application.Interfaces; public interface IWorkshopService { // Servicios Task> ListarServiciosAsync(string? buscar = null, CancellationToken ct = default); Task ObtenerServicioAsync(int id, CancellationToken ct = default); Task CrearServicioAsync(ServicioFormDto dto, string? usuario, CancellationToken ct = default); Task ActualizarServicioAsync(ServicioFormDto dto, string? usuario, CancellationToken ct = default); Task EliminarServicioAsync(int id, CancellationToken ct = default); Task> ListarCategoriasServicioAsync(CancellationToken ct = default); // Órdenes de trabajo Task> ListarOrdenesAsync(string? buscar, EstadoOT? estado, int page, int pageSize, CancellationToken ct = default); Task> ListarTodasOrdenesAsync(CancellationToken ct = default); Task ObtenerOrdenAsync(int id, CancellationToken ct = default); Task CrearOrdenAsync(OrdenTrabajoFormDto dto, string? usuario, CancellationToken ct = default); Task CambiarEstadoAsync(CambioEstadoDto dto, string? usuario, CancellationToken ct = default); Task EliminarOrdenAsync(int id, CancellationToken ct = default); // Técnicos (lectura ligera para asignación) Task> ListarTecnicosAsync(CancellationToken ct = default); // Citas Task> ListarCitasAsync(DateTime desde, DateTime hasta, CancellationToken ct = default); Task ObtenerCitaAsync(int id, CancellationToken ct = default); Task CrearCitaAsync(CitaFormDto dto, string? usuario, CancellationToken ct = default); Task ActualizarCitaAsync(CitaFormDto dto, string? usuario, CancellationToken ct = default); Task EliminarCitaAsync(int id, CancellationToken ct = default); Task ConvertirCitaEnOTAsync(int citaId, string? usuario, CancellationToken ct = default); }