namespace CashLineERP.Application.Finance;

public interface IForeignExchangeQuoteRepository
{
    IReadOnlyCollection<ForeignExchangeQuoteDetailView> GetForeignExchangeQuotes(
        string? currencyCode = null,
        string? baseCurrencyCode = null,
        long? integrationEndpointId = null,
        DateOnly? dateFrom = null,
        DateOnly? dateTo = null);

    ForeignExchangeQuoteDetailView? GetLatestForeignExchangeQuote(
        string currencyCode,
        string? baseCurrencyCode = null,
        DateOnly? asOfDate = null,
        long? integrationEndpointId = null);

    IReadOnlyCollection<ForeignExchangeQuoteDetailView> IngestQuotes(long actorUserId, IngestForeignExchangeQuotesCommand command);
}
