using SeaHaven.Services.DTOs; namespace SeaHaven.Services.Interfaces { public interface IDispatchService { Task GetDispatchByIdAsync(int id); Task GetDispatchByIdWithDetailsAsync(int id); Task> GetAllDispatchesAsync(); Task> GetDispatchesByVendorIdAsync(int vendorId); Task> GetDispatchesPagedAsync(int page, int pageSize, string? search = null, string? status = null); Task CreateDispatchAsync(CreateDispatchDTO dto, string userId); Task UpdateDispatchAsync(int id, UpdateDispatchDTO dto, string userId); Task DeleteDispatchAsync(int id, string userId); Task DispatchExistsAsync(int id); Task GenerateNextDispatchNumberAsync(); Task GetTotalDispatchCountAsync(); Task GetDispatchListAsync(string? search, string? status, int? vendorId, DateTime? dateFrom, DateTime? dateTo, string? sortBy, string? sortDir, int page, int pageSize, CancellationToken cancellationToken); Task GetDispatchDetailAsync(int id, CancellationToken cancellationToken); } }