using CashLineERP.Contracts.Finance;

namespace CashLineERP.Application.Finance;

public interface IForeignExchangeOverrideService
{
    IReadOnlyCollection<ForeignExchangeOverrideResponse> GetForeignExchangeOverrides(
        string? currencyCode = null,
        string? baseCurrencyCode = null,
        string? statusCode = null,
        DateOnly? effectiveDateFrom = null,
        DateOnly? effectiveDateTo = null);

    ForeignExchangeOverrideResponse? GetForeignExchangeOverride(long foreignExchangeOverrideId);

    ForeignExchangeOverrideResponse CreateForeignExchangeOverride(CreateForeignExchangeOverrideRequest request);

    ForeignExchangeOverrideResponse SubmitForeignExchangeOverride(long foreignExchangeOverrideId, long actorUserId);

    ForeignExchangeOverrideResponse ApproveForeignExchangeOverride(long foreignExchangeOverrideId, long actorUserId);
}
