ComplianceNFs/ComplianceNFs.Core/Application/ApplicationInterfaces.cs

45 lines
1.1 KiB
C#

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<EnergyInvoice> StatusUpdated;
IEnumerable<EnergyInvoice> GetRecent(int count = 100);
}
}