namespace CashLineERP.Application.Finance;

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

    ForeignExchangeOverrideDetailView? GetForeignExchangeOverride(long foreignExchangeOverrideId);

    ForeignExchangeOverrideDetailView Create(CreateForeignExchangeOverrideCommand command);

    ForeignExchangeOverrideDetailView Submit(long foreignExchangeOverrideId, long actorUserId);

    ForeignExchangeOverrideDetailView Approve(long foreignExchangeOverrideId, long actorUserId);
}
