using SeaHaven.Services.DTOs; namespace SeaHaven.Services.Interfaces { public interface IVendorPortalService { Task ResolveSessionAsync(string? token, CancellationToken cancellationToken); Task> ListDispatchesAsync(VendorPortalSession session, string? status, CancellationToken cancellationToken); Task GetDispatchDetailAsync(VendorPortalSession session, int id, CancellationToken cancellationToken); Task AcceptDispatchAsync(VendorPortalSession session, int id, CancellationToken cancellationToken); Task RefuseDispatchAsync(VendorPortalSession session, int id, string? reason, CancellationToken cancellationToken); Task ChangeStatusAsync(VendorPortalSession session, int id, string? to, CancellationToken cancellationToken); Task RequestCancelAsync(VendorPortalSession session, int id, string? reason, CancellationToken cancellationToken); Task UpdateChecklistItemAsync(VendorPortalSession session, int id, int itemId, bool isCompleted, CancellationToken cancellationToken); Task AddSignoffAsync(VendorPortalSession session, int id, string? signoffType, string? name, string? signature, string? signatureMethod, CancellationToken cancellationToken); Task AddCommentAsync(VendorPortalSession session, int id, string? commentText, CancellationToken cancellationToken); Task RequestUpliftAsync(VendorPortalSession session, int id, decimal requestedNTE, string? reason, string? requestKey, int? evidenceDocumentId, CancellationToken cancellationToken); Task CancelUpliftRequestAsync(VendorPortalSession session, int id, int requestId, CancellationToken cancellationToken); Task WithdrawUpliftAsync(VendorPortalSession session, int id, int requestId, CancellationToken cancellationToken); Task ReviseUpliftAsync(VendorPortalSession session, int id, int requestId, decimal requestedNTE, string? reason, int? evidenceDocumentId, CancellationToken cancellationToken); Task UploadCompletionDocumentAsync(VendorPortalSession session, int dispatchId, Microsoft.AspNetCore.Http.IFormFile file, int? replacesDocumentId, string? purpose, CancellationToken cancellationToken); Task GetDocumentStatusAsync(VendorPortalSession session, int dispatchId, int documentId, CancellationToken cancellationToken); Task DownloadCompletionDocumentAsync(VendorPortalSession session, int dispatchId, int documentId, CancellationToken cancellationToken); } }