from fastapi import FastAPI from app.notification.backend.infra.rabbitmq.async_subscriber import AsyncMQSubscriber from app.notification.backend.models.constants import NotificationChannel from app.notification.webapi.utils.email_consumer import EmailMQConsumer from app.notification.webapi.utils.sms_consumer import SmsMQConsumer class FreeleapsApp(FastAPI): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.email_mq_client = AsyncMQSubscriber(NotificationChannel.EMAIL.name) self.sms_mq_client = AsyncMQSubscriber(NotificationChannel.SMS.name) self.in_app_mq_client = AsyncMQSubscriber(NotificationChannel.IN_APP.name) self.email_handler = EmailMQConsumer(self.email_mq_client) self.sms_handler = SmsMQConsumer(self.sms_mq_client)