using System; using System.Collections.Generic; using System.Threading.Tasks; using ComplianceNFs.Core.Entities; namespace ComplianceNFs.Core.Application { // Handles ingestion of invoices from mail attachments public interface IInvoiceIngestionService { Task IngestAsync(); } // Handles matching logic for invoices public interface IMatchingService { Task MatchAsync(EnergyInvoice invoice); } // Handles compliance validation public interface IComplianceService { Task ValidateAsync(EnergyInvoice invoice); } // Handles notifications for mismatches public interface INotificationService { Task NotifyAsync(EnergyInvoice invoice, string message); } // Handles archiving of files public interface IArchivingService { Task ArchiveAsync(EnergyInvoice invoice); } // For streaming invoice status updates (for Monitor) public interface IInvoiceStatusStream { event Action StatusUpdated; IEnumerable GetRecent(int count = 100); } }