""" BAN YARO — User-Feedback per E-Mail an support@banyaro.app """ from typing import Annotated, Literal from fastapi import APIRouter, Depends from pydantic import BaseModel, Field from auth import get_current_user from mailer import send_email, email_html router = APIRouter() SUPPORT_MAIL = "support@banyaro.app" KATEGORIEN = {"bug": "🐛 Bug / Fehler", "idee": "💡 Idee / Wunsch", "lob": "🎉 Lob", "sonstiges": "💬 Sonstiges"} class FeedbackIn(BaseModel): kategorie: Literal["bug", "idee", "lob", "sonstiges"] text: Annotated[str, Field(min_length=5, max_length=2000)] @router.post("") async def submit_feedback( payload: FeedbackIn, user=Depends(get_current_user), ): kat_label = KATEGORIEN.get(payload.kategorie, payload.kategorie) username = user.get("name", "?") email = user.get("email", "") tier = user.get("subscription_tier", "standard") subject = f"[Feedback] {kat_label} von @{username}" body = f"""

Neues Feedback aus der App:

Kategorie {kat_label}
User @{username} ({email})
Tier {tier}
{payload.text}
""" plain = f"Feedback [{kat_label}] von @{username} ({email})\n\n{payload.text}" await send_email(SUPPORT_MAIL, subject, email_html(body), plain) return {"ok": True}