"""HTML-E-Mail-Vorlagen fuer Magic Links, Einladungen und Benachrichtigungen.""" def magic_link_login_email(username: str, code: str, link: str) -> tuple[str, str]: """Erzeugt Login-E-Mail mit Magic Link und Code. Returns: (subject, html_body) """ subject = f"AegisSight Monitor - Anmeldung" html = f"""

AegisSight Monitor

Hallo {username},

Klicken Sie auf den Link oder geben Sie den Code ein, um sich anzumelden:

{code}
Jetzt anmelden

Dieser Link ist 10 Minuten gueltig. Falls Sie diese Anmeldung nicht angefordert haben, ignorieren Sie diese E-Mail.

""" return subject, html def incident_notification_email( username: str, incident_title: str, notifications: list[dict], dashboard_url: str, ) -> tuple[str, str]: """Erzeugt Benachrichtigungs-E-Mail fuer Lagen-Updates. Args: username: Empfaenger-Name incident_title: Titel der Lage/Recherche notifications: Liste von {"text": ..., "icon": ...} Dicts dashboard_url: Link zum Dashboard Returns: (subject, html_body) """ subject = f"AegisSight - {incident_title}" icon_map = { "success": "✓", # Haekchen "warning": "⚠", # Warndreieck "error": "✗", # Kreuz "info": "ⓘ", # Info-Kreis } color_map = { "success": "#22c55e", "warning": "#f0b429", "error": "#ef4444", "info": "#94a3b8", } items_html = "" for n in notifications: icon = icon_map.get(n.get("icon", "info"), "ⓘ") color = color_map.get(n.get("icon", "info"), "#94a3b8") text = n.get("text", "") items_html += f"""
{icon} {text}
""" html = f"""

AegisSight Monitor

Lagebericht-Benachrichtigung

Hallo {username},

es gibt Neuigkeiten zur Lage {incident_title}:

{items_html}
Im Dashboard ansehen

Diese Benachrichtigung kann in den Einstellungen im Dashboard deaktiviert werden.

""" return subject, html