using System; using System.Collections.Generic; using System.IO; using System.Net.Mail; using System.Threading.Tasks; namespace ComplianceNFs.Core.Ports { public interface IMailListener { void StartListening(); event Action NewMailReceived; } public interface IXmlParser { Entities.ParsedInvoice Parse(Stream xmlStream); } public interface IPdfParser { Entities.ParsedInvoice Parse(Stream pdfStream); } public interface IAccessDbRepository { IEnumerable GetByUnidade(string codSmartUnidade); IEnumerable GetByUnidadeAndMonth(string codSmartUnidade, int month, int year); } public interface IAttachmentRepository { Task SaveRawAsync(Entities.EnergyInvoice invoice); Task UpdateMatchAsync(int invoiceId, int matchedCodTE, Entities.InvoiceStatus status, string notes); } public interface IFileArchiver { Task ArchiveAsync(Entities.EnergyInvoice invoice, byte[] rawFile); } }