import { getTranslation } from "@calcom/lib/server/i18n"; import { deleteMultipleScheduledSMS } from "../reminders/providers/twilioProvider"; import { WorkflowOptOutContactRepository } from "../repository/workflowOptOutContact"; import { WorkflowReminderRepository } from "../repository/workflowReminder"; export class WorkflowOptOutService { static async optOutPhoneNumber(phoneNumber: string) { await WorkflowOptOutContactRepository.addPhoneNumber(phoneNumber); // Delete scheduled workflows const scheduledReminders = await WorkflowReminderRepository.getFutureScheduledAttendeeSMSReminders( phoneNumber ); // Get twilio scheduled workflows reminders await deleteMultipleScheduledSMS( scheduledReminders .filter((reminder) => !!reminder.referenceId) .map((reminder) => reminder.referenceId as string) ); // Get not twilio scheduled yet workflows await WorkflowReminderRepository.deleteWorkflowReminders( scheduledReminders.filter((reminder) => !reminder.referenceId).map((reminder) => reminder.id) ); } static async addOptOutMessage(message: string, locale: string) { const t = await getTranslation(locale, "common"); return `${message}\n\n${t("sms_opt_out_message")}`; } }