namespace CashLineERP.Application.Finance;

public interface IPaymentChannelConfigurationRepository
{
    IReadOnlyCollection<PaymentChannelConfigurationDetailView> GetPaymentChannels(bool activeOnly = false, string? integrationProviderCode = null, string? channelTypeCode = null, string? usageCode = null);

    PaymentChannelConfigurationDetailView? GetPaymentChannel(long paymentChannelConfigurationId);

    PaymentChannelConfigurationDetailView Create(CreatePaymentChannelConfigurationCommand command);

    PaymentChannelConfigurationDetailView Submit(long paymentChannelConfigurationId, long actorUserId);

    PaymentChannelConfigurationDetailView Approve(long paymentChannelConfigurationId, long actorUserId);

    PaymentChannelConfigurationDetailView Activate(long paymentChannelConfigurationId, long actorUserId);
}
