"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.INTEGRATION_TEMPLATES = void 0;
exports.integrationTemplate = integrationTemplate;
exports.normalizeIntegrationProvider = normalizeIntegrationProvider;
exports.INTEGRATION_TEMPLATES = [
    {
        category: 'PAYMENT',
        provider: 'FLUTTERWAVE',
        displayName: 'Flutterwave',
        publicKeys: ['baseUrl', 'publicKey'],
        secretKeys: ['secretKey', 'encryptionKey'],
        description: 'Flutterwave hosted checkout and payment verification.'
    },
    {
        category: 'PAYMENT',
        provider: 'MONNIFY',
        displayName: 'Monnify',
        publicKeys: ['baseUrl', 'contractCode'],
        secretKeys: ['apiKey', 'secretKey'],
        description: 'Monnify checkout and transaction verification.'
    },
    {
        category: 'PAYMENT',
        provider: 'PAYSTACK',
        displayName: 'Paystack',
        publicKeys: ['baseUrl', 'publicKey'],
        secretKeys: ['secretKey'],
        description: 'Paystack hosted checkout and transaction verification.'
    },
    {
        category: 'PAYMENT',
        provider: 'STRIPE',
        displayName: 'Stripe',
        publicKeys: ['baseUrl', 'publicKey', 'successUrl', 'cancelUrl'],
        secretKeys: ['secretKey'],
        description: 'Stripe Checkout sessions and payment verification.'
    },
    {
        category: 'SMS',
        provider: 'TERMII',
        displayName: 'Termii',
        publicKeys: ['baseUrl', 'senderId', 'channel'],
        secretKeys: ['apiKey'],
        description: 'Termii SMS delivery for phone OTP login.'
    },
    {
        category: 'SMS',
        provider: 'AFRICAS_TALKING',
        displayName: "Africa's Talking",
        publicKeys: ['baseUrl', 'username', 'senderId'],
        secretKeys: ['apiKey'],
        description: "Africa's Talking SMS delivery for phone OTP login."
    },
    {
        category: 'SMS',
        provider: 'CUSTOM_HTTP',
        displayName: 'Custom SMS HTTP',
        publicKeys: ['url', 'method', 'bodyTemplate'],
        secretKeys: ['headersJson'],
        description: 'Self-managed SMS API for OTP delivery.'
    },
    {
        category: 'EMAIL',
        provider: 'SMTP',
        displayName: 'SMTP Email',
        publicKeys: ['host', 'port', 'secure', 'username', 'fromEmail', 'fromName'],
        secretKeys: ['password'],
        description: 'SMTP credentials for future email notifications.'
    },
    {
        category: 'EMAIL',
        provider: 'SENDGRID',
        displayName: 'SendGrid',
        publicKeys: ['fromEmail', 'fromName'],
        secretKeys: ['apiKey'],
        description: 'SendGrid credentials for future transactional email.'
    },
    {
        category: 'EMAIL',
        provider: 'MAILGUN',
        displayName: 'Mailgun',
        publicKeys: ['baseUrl', 'domain', 'fromEmail', 'fromName'],
        secretKeys: ['apiKey'],
        description: 'Mailgun credentials for future transactional email.'
    },
    {
        category: 'EMAIL',
        provider: 'CUSTOM_EMAIL_HTTP',
        displayName: 'Custom Email HTTP',
        publicKeys: ['url', 'method', 'bodyTemplate'],
        secretKeys: ['headersJson'],
        description: 'Self-managed HTTP email API for future email delivery.'
    }
];
function integrationTemplate(provider) {
    const normalized = normalizeIntegrationProvider(provider);
    return exports.INTEGRATION_TEMPLATES.find((template) => template.provider === normalized);
}
function normalizeIntegrationProvider(provider) {
    return provider.trim().replace(/[\s-]+/g, '_').toUpperCase();
}
//# sourceMappingURL=integration-config.types.js.map