using CashLineERP.Contracts.Finance;

namespace CashLineERP.Application.Finance;

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

    PaymentChannelConfigurationResponse? GetPaymentChannel(long paymentChannelConfigurationId);

    PaymentChannelConfigurationResponse CreatePaymentChannel(CreatePaymentChannelConfigurationRequest request);

    PaymentChannelConfigurationResponse SubmitPaymentChannel(long paymentChannelConfigurationId, long actorUserId);

    PaymentChannelConfigurationResponse ApprovePaymentChannel(long paymentChannelConfigurationId, long actorUserId);

    PaymentChannelConfigurationResponse ActivatePaymentChannel(long paymentChannelConfigurationId, long actorUserId);
}
