from typing import List from backend.services.email_sender_service import EmailSenderService from backend.models.models import EmailSenderDoc from common.log.module_logger import ModuleLogger from datetime import datetime, timezone class EmailSenderManager: def __init__(self): self.email_sender_service = EmailSenderService() self.module_logger = ModuleLogger(sender_id="EmailSenderManager") async def get_email_sender(self, tenant_id: str): """get email sendersfor tenant""" email_sender = await self.email_sender_service.get_email_sender(tenant_id) await self.module_logger.log_info( info="Email sender retrieved", properties={ "tenant_id": tenant_id, "email_sender": email_sender } ) return email_sender async def set_email_sender(self, tenant_id: str, email_sender: str): """set email sender for tenant""" if not email_sender: raise ValueError("Email sender must be provided") result = await self.email_sender_service.set_email_sender(tenant_id, email_sender) await self.module_logger.log_info( info="Email senders set", properties={ "tenant_id": tenant_id, "email_sender": email_sender } ) return result async def update_email_sender(self, tenant_id: str, email_sender: str): """update email sender for tenant""" if not email_sender: raise ValueError("Email sender must be provided") result = await self.email_sender_service.update_email_sender(tenant_id, email_sender) await self.module_logger.log_info( info="Email senders set", properties={ "tenant_id": tenant_id, "email_sender": email_sender } ) return result async def delete_email_sender(self, tenant_id: str): """delete email sender for tenant""" result = await self.email_sender_service.delete_email_sender(tenant_id) await self.module_logger.log_info( info="Email sender configuration deleted", properties={ "tenant_id": tenant_id, "success": result.get("success", False) } ) return result