45 lines
1.1 KiB
C#
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);
|
|
}
|
|
}
|