using Data.SeaHavenIndustries; namespace SeaHaven.DataServices.Interfaces { public interface IWorkOrderMediaDataService { /// AsNoTracking base (+ optional account) scoped load for pre-mutation auth. Task GetWorkOrderForMediaAuthAsync( int workOrderId, int? accountId, CancellationToken cancellationToken); Task GetTrackedWorkOrderAsync( int workOrderId, int? accountId, CancellationToken cancellationToken); Task GetAttachmentForReadAsync( int mediaId, int workOrderId, CancellationToken cancellationToken); Task GetTrackedAttachmentAsync(int mediaId, int workOrderId, CancellationToken cancellationToken); void TrackAttachment(WorkOrderAttachments attachment); /// Stored URLs of the work order's non-deleted attachments (photo/video counts). Task> ListActiveAttachmentUrlsAsync( int workOrderId, CancellationToken cancellationToken); /// /// Content types of the work order's current vendor-portal documents (not deleted, not /// replaced by a newer completion version). The counts span both upload surfaces. /// Task> ListActiveVendorMediaContentTypesAsync( int workOrderId, CancellationToken cancellationToken); void SetExpectedWorkOrderVersion(WorkOrder workOrder, byte[] version); void MarkWorkOrderModified(WorkOrder workOrder); Task SaveAsync(CancellationToken cancellationToken); } }