using Data.SeaHavenIndustries; using SeaHaven.DataServices.Models; namespace SeaHaven.DataServices.Interfaces { public interface IVendorOperationsDataService { Task> GetAssignedWorkOrderIdsAsync(CancellationToken cancellationToken); Task> GetNoVendorWorkOrdersAsync(DateTime cutoff, IReadOnlyCollection excludeIds, CancellationToken cancellationToken); Task> GetActiveScheduledDispatchesAsync(CancellationToken cancellationToken); /// Same windows limited to work orders of ; null is org-wide. Task> GetActiveScheduledDispatchesAsync(int? accountId, CancellationToken cancellationToken); Task> GetActiveVendorsAsync(CancellationToken cancellationToken); Task> GetSitePreferredVendorsAsync(int locationId, CancellationToken cancellationToken); Task> GetSitePreferredVendorsForReplaceAsync(int locationId, CancellationToken cancellationToken); Task LocationExistsAsync(int locationId, CancellationToken cancellationToken); Task> GetVendorsByIdsAsync(IReadOnlyCollection vendorIds, CancellationToken cancellationToken); Task> GetInsightDispatchDataAsync(DateTime? from, DateTime? to, int? locationId, string? trade, int? vendorId, CancellationToken cancellationToken); Task GetVendorForUpdateAsync(int vendorId, CancellationToken cancellationToken); Task GetCompletionDocumentForUpdateAsync(int documentId, CancellationToken cancellationToken); Task GetDispatchForUpdateAsync(int dispatchId, CancellationToken cancellationToken); Task GetWorkOrderForUpdateAsync(int workOrderId, CancellationToken cancellationToken); Task GetExistingActiveDispatchForWorkOrderAsync(int workOrderId, CancellationToken cancellationToken); Task GenerateNextDispatchNumberAsync(CancellationToken cancellationToken); Task GenerateNextPONumberAsync(CancellationToken cancellationToken); Task AddDispatchAsync(Dispatch dispatch, CancellationToken cancellationToken); Task StageWorkOrderAuditAsync(WorkOrderAuditLog log, CancellationToken cancellationToken); Task StageVendorAuditAsync(VendorAuditLog log, CancellationToken cancellationToken); Task AddSitePreferredVendorAsync(SitePreferredVendor preference, CancellationToken cancellationToken); Task RemoveSitePreferredVendorsAsync(IEnumerable preferences, CancellationToken cancellationToken); Task SaveChangesAsync(CancellationToken cancellationToken); } }