import logging # Configure logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger("notifications") EMAIL_TEMPLATES = { "en": { "status_change_subject": "Radionica3D: Update on your Order #{order_id}", "status_change_body": "Hello {first_name},\n\nYour order status has been updated to: {new_status}.\n\nCheck details here: http://localhost:5173/orders" }, "ru": { "status_change_subject": "Radionica3D: Обновление по вашему заказу #{order_id}", "status_change_body": "Здравствуйте, {first_name},\n\nСтатус вашего заказа обновлен на: {new_status}.\n\nПодробности по ссылке: http://localhost:5173/orders" }, "me": { "status_change_subject": "Radionica3D: Ažuriranje vaše narudžbe #{order_id}", "status_change_body": "Zdravo {first_name},\n\nStatus vaše narudžbe je ažuriran na: {new_status}.\n\nDetalje provjerite ovdje: http://localhost:5173/orders" }, "ua": { "status_change_subject": "Radionica3D: Оновлення вашого замовлення #{order_id}", "status_change_body": "Вітаємо, {first_name},\n\nСтатус вашого замовлення оновлено на: {new_status}.\n\nДеталі за посиланням: http://localhost:5173/orders" } } def send_email(to_email: str, subject: str, body: str): """ Mock function for sending emails. Users will configure SMTP here. """ pass def notify_status_change(email: str, order_id: int, new_status: str, first_name: str, lang: str = "en"): """ Hook to send notification when order status changes. The USER will configure SMTP here later. """ logger.info(f"NOTIFICATION HOOK: Sending status update to {email} for Order #{order_id}. New Status: {new_status} (Lang: {lang})") lang = lang.lower() if lang else "en" if lang not in EMAIL_TEMPLATES: lang = "en" templates = EMAIL_TEMPLATES[lang] subject = templates["status_change_subject"].format(order_id=order_id) body = templates["status_change_body"].format( first_name=first_name, new_status=new_status ) # send_email(email, subject, body) return True