import type { IntegrationAccountRequirement, TriggerDefinition } from "../types" const BREVO_ACCOUNT = { connectionOptions: [{ requiredScopes: [] }], serviceId: "brevo", } as const satisfies IntegrationAccountRequirement const trigger = (type: TType, name?: string) => ({ account: BREVO_ACCOUNT, ...(name ? { name } : {}), type, }) export const brevoTriggerDefinitions = { brevoEvent: trigger("brevo.event"), brevoTransactionalEmailEvent: trigger("brevo.transactionalEmail.event"), brevoTransactionalEmailSent: trigger( "brevo.transactionalEmail.sent", "Brevo transactional email sent", ), brevoTransactionalEmailDelivered: trigger( "brevo.transactionalEmail.delivered", "Brevo transactional email delivered", ), brevoTransactionalEmailHardBounced: trigger( "brevo.transactionalEmail.hardBounced", "Brevo transactional email hard bounced", ), brevoTransactionalEmailSoftBounced: trigger( "brevo.transactionalEmail.softBounced", "Brevo transactional email soft bounced", ), brevoTransactionalEmailBlocked: trigger( "brevo.transactionalEmail.blocked", "Brevo transactional email blocked", ), brevoTransactionalEmailMarkedAsSpam: trigger( "brevo.transactionalEmail.markedAsSpam", "Brevo transactional email marked as spam", ), brevoTransactionalEmailInvalid: trigger( "brevo.transactionalEmail.invalid", "Brevo transactional email invalid", ), brevoTransactionalEmailDeferred: trigger( "brevo.transactionalEmail.deferred", "Brevo transactional email deferred", ), brevoTransactionalEmailClicked: trigger( "brevo.transactionalEmail.clicked", "Brevo transactional email clicked", ), brevoTransactionalEmailOpened: trigger( "brevo.transactionalEmail.opened", "Brevo transactional email opened", ), brevoTransactionalEmailFirstOpened: trigger( "brevo.transactionalEmail.firstOpened", "Brevo transactional email first opened", ), brevoTransactionalEmailUnsubscribed: trigger( "brevo.transactionalEmail.unsubscribed", "Brevo transactional email unsubscribed", ), brevoTransactionalSmsEvent: trigger("brevo.transactionalSms.event"), brevoTransactionalSmsSent: trigger( "brevo.transactionalSms.sent", "Brevo transactional SMS sent", ), brevoTransactionalSmsDelivered: trigger( "brevo.transactionalSms.delivered", "Brevo transactional SMS delivered", ), brevoTransactionalSmsHardBounced: trigger( "brevo.transactionalSms.hardBounced", "Brevo transactional SMS hard bounced", ), brevoTransactionalSmsSoftBounced: trigger( "brevo.transactionalSms.softBounced", "Brevo transactional SMS soft bounced", ), brevoTransactionalSmsReplied: trigger( "brevo.transactionalSms.replied", "Brevo transactional SMS replied", ), brevoTransactionalSmsUnsubscribed: trigger( "brevo.transactionalSms.unsubscribed", "Brevo transactional SMS unsubscribed", ), brevoMarketingEmailEvent: trigger("brevo.marketingEmail.event"), brevoMarketingEmailDelivered: trigger( "brevo.marketingEmail.delivered", "Brevo marketing email delivered", ), brevoMarketingEmailHardBounced: trigger( "brevo.marketingEmail.hardBounced", "Brevo marketing email hard bounced", ), brevoMarketingEmailSoftBounced: trigger( "brevo.marketingEmail.softBounced", "Brevo marketing email soft bounced", ), brevoMarketingEmailMarkedAsSpam: trigger( "brevo.marketingEmail.markedAsSpam", "Brevo marketing email marked as spam", ), brevoMarketingEmailOpened: trigger( "brevo.marketingEmail.opened", "Brevo marketing email opened", ), brevoMarketingEmailClicked: trigger( "brevo.marketingEmail.clicked", "Brevo marketing email clicked", ), brevoMarketingEmailUnsubscribed: trigger( "brevo.marketingEmail.unsubscribed", "Brevo marketing email unsubscribed", ), brevoContactEvent: trigger("brevo.contact.event"), brevoContactAddedToList: trigger( "brevo.contact.addedToList", "Brevo contact added to list", ), brevoContactUpdated: trigger( "brevo.contact.updated", "Brevo contact updated", ), brevoContactDeleted: trigger( "brevo.contact.deleted", "Brevo contact deleted", ), brevoMarketingSmsEvent: trigger("brevo.marketingSms.event"), brevoMarketingSmsSent: trigger( "brevo.marketingSms.sent", "Brevo marketing SMS sent", ), brevoMarketingSmsDelivered: trigger( "brevo.marketingSms.delivered", "Brevo marketing SMS delivered", ), brevoMarketingSmsHardBounced: trigger( "brevo.marketingSms.hardBounced", "Brevo marketing SMS hard bounced", ), brevoMarketingSmsSoftBounced: trigger( "brevo.marketingSms.softBounced", "Brevo marketing SMS soft bounced", ), brevoMarketingSmsReplied: trigger( "brevo.marketingSms.replied", "Brevo marketing SMS replied", ), brevoMarketingSmsUnsubscribed: trigger( "brevo.marketingSms.unsubscribed", "Brevo marketing SMS unsubscribed", ), } as const satisfies Record