import logging from typing import Optional from core.base import EmailProvider logger = logging.getLogger() class ConsoleMockEmailProvider(EmailProvider): """A simple email provider that logs emails to console, useful for testing.""" async def send_email( self, to_email: str, subject: str, body: str, html_body: Optional[str] = None, *args, **kwargs, ) -> None: logger.info(f""" -------- Email Message -------- To: {to_email} Subject: {subject} Body: {body} ----------------------------- """) async def send_verification_email( self, to_email: str, verification_code: str, *args, **kwargs ) -> None: logger.info(f""" -------- Email Message -------- To: {to_email} Subject: Please verify your email address Body: Verification code: {verification_code} ----------------------------- """) async def send_password_reset_email( self, to_email: str, reset_token: str, *args, **kwargs ) -> None: logger.info(f""" -------- Email Message -------- To: {to_email} Subject: Password Reset Request Body: Reset token: {reset_token} ----------------------------- """) async def send_password_changed_email( self, to_email: str, *args, **kwargs ) -> None: logger.info(f""" -------- Email Message -------- To: {to_email} Subject: Your Password Has Been Changed Body: Your password has been successfully changed. For security reasons, you will need to log in again on all your devices. ----------------------------- """)