using SeaHaven.DataServices.Models; namespace SeaHaven.DataServices.Interfaces { /// /// Live work-order conditions behind the notification feed. Every query applies the /// base scope (no templates, no deleted rows), the caller's account scope, and the /// shared open rule (not Completed/Canceled, including legacy terminal statuses). /// public interface INotificationFeedDataService { /// Open work orders with no dispatcher assigned in (null is org-wide). Task GetUnassignedSummaryAsync(int? accountId, CancellationToken cancellationToken); /// /// Open, Aveta-required work orders scheduled on or the next day with no /// Aveta document attached. Items are the latest scheduled. /// Task GetAvetaMissingAsync( NotificationFeedScope scope, DateOnly today, int limit, CancellationToken cancellationToken); /// /// Open work orders scheduled at or before with no active vendor dispatch, /// direct or linked. Items are the latest scheduled. /// Task GetNoVendorAsync( NotificationFeedScope scope, DateTime cutoff, int limit, CancellationToken cancellationToken); } }