using CashLineERP.Contracts.Finance;

namespace CashLineERP.Application.Finance;

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

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

    IReadOnlyCollection<ForeignExchangeQuoteResponse> IngestQuotes(long actorUserId, IngestForeignExchangeQuotesRequest request);
}
