"""Manuell ausgelöster Notruf — vom Nutzer bewusst bestätigt. Es gibt KEINE automatische Notfallerkennung (keine Stichwörter, kein LLM): die wäre unzuverlässig (Fehlalarme wie verpasste Notfälle) und intransparent. Ein Notruf entsteht nur durch eine ausdrückliche Nutzeraktion (Knopf + Bestätigung). Die tatsächliche Benachrichtigung von Angehörigen (SMS/Anruf/Webhook) ist noch NICHT implementiert. Bis dahin wird der Notruf protokolliert und der Nutzer erhält einen klaren Hinweis in seiner Sprache. """ from app.metrics import metrics # Platzhalter-Hinweis je Sprache, solange die Eskalation noch nicht gebaut ist. _NO_NOTIFY_NOTICE: dict[str, str] = { "de": "ACHTUNG: Es ist noch keine Benachrichtigung eingebaut.", "en": "ATTENTION: No notification has been set up yet.", "fr": "ATTENTION : aucune notification n'est encore configurée.", "es": "ATENCIÓN: todavía no se ha configurado ninguna notificación.", "it": "ATTENZIONE: non è ancora stata configurata alcuna notifica.", "pt": "ATENÇÃO: ainda não há nenhuma notificação configurada.", "pl": "UWAGA: Nie skonfigurowano jeszcze żadnego powiadomienia.", "ar": "تنبيه: لم يتم إعداد أي إشعار بعد.", "ru": "ВНИМАНИЕ: Уведомление пока не настроено.", "zh": "注意:尚未设置任何通知。", } def notify_notice(language: str | None) -> str: """Liefert den Platzhalter-Hinweis in der Nutzersprache (Fallback Deutsch).""" return _NO_NOTIFY_NOTICE.get((language or "de").lower(), _NO_NOTIFY_NOTICE["de"]) def record_manual_emergency(user, store, language: str | None = None) -> dict: """Protokolliert einen vom Nutzer bestätigten Notruf und liefert den Hinweis. Eskalation (Benachrichtigung) folgt später; hier wird nur protokolliert. """ store.log_emergency(user.id, "manual", "Vom Nutzer ausgelöster Notruf") metrics.inc("emergency_total", {"category": "manual", "source": "user"}) return {"category": "manual", "notice": notify_notice(language)}