namespace CashLineERP.Application.Finance;

public interface IWalletRuleRepository
{
    IReadOnlyCollection<WalletRuleDetailView> GetWalletRules(bool activeOnly = false, string? integrationProviderCode = null, string? transactionTypeCode = null);

    WalletRuleDetailView? GetWalletRule(long walletRuleId);

    WalletRuleDetailView Create(CreateWalletRuleCommand command);

    WalletRuleDetailView Submit(long walletRuleId, long actorUserId);

    WalletRuleDetailView Approve(long walletRuleId, long actorUserId);

    WalletRuleDetailView Activate(long walletRuleId, long actorUserId);

    WalletRuleEvaluationView Evaluate(WalletRuleEvaluationCommand command);
}
