using Data.SeaHavenIndustries; namespace SeaHaven.DataServices.Interfaces { public interface IDispatchDataService { Task GetByIdAsync(int id); Task GetByIdWithDetailsAsync(int id); Task> GetAllAsync(); Task> GetByVendorIdAsync(int vendorId); Task> GetByWorkOrderIdAsync(int workOrderId); Task> GetByWorkOrderIdsAsync(IEnumerable workOrderIds); Task> GetByStatusAsync(string status); Task<(IEnumerable Items, int TotalCount)> GetPagedAsync(int page, int pageSize, string? search = null, string? status = null); Task AddAsync(Dispatch dispatch); Task UpdateAsync(Dispatch dispatch); Task DeleteAsync(int id); Task ExistsAsync(int id); Task GenerateNextDispatchNumberAsync(); Task GenerateNextPONumberAsync(); Task CountAsync(); Task> GetChecklistItemsAsync(int dispatchId); Task GetChecklistItemByIdAsync(int id); Task AddChecklistItemAsync(DispatchChecklistItem item); Task UpdateChecklistItemAsync(DispatchChecklistItem item); Task> GetSignoffsAsync(int dispatchId); Task AddSignoffAsync(DispatchSignoff signoff); Task HasSignoffTypeAsync(int dispatchId, string signoffType); Task> GetDispatchWorkOrdersAsync(int dispatchId); Task AddDispatchWorkOrderAsync(DispatchWorkOrder dispatchWorkOrder); } }