""" Modell-Radar-Schnittstellen (Box-Wart, Umbau 09/2026). GET /api/radar Nächster und letzter Test, Kandidaten, Test-Verlauf POST /api/radar/suche Jetzt suchen (Merkliste + Hugging-Face-Entdeckung) POST /api/radar/{id}/uebernehmen Bestandenen Kandidaten in Betrieb nehmen (Modell-Tausch) POST /api/radar/{id}/verwerfen Kandidaten verwerfen (Dateien weg, nie wieder testen) Dünn: die Logik liegt in services/radar.py. Getestet wird nur nachts (backend/radar_lauf.py). """ from fastapi import APIRouter, HTTPException from services import radar router = APIRouter(prefix="/api", tags=["radar"]) def _antwort(ergebnis: dict) -> dict: if not ergebnis.get("ok"): raise HTTPException(status_code=int(ergebnis.get("status") or 409), detail=ergebnis.get("detail") or "Das ging nicht.") return ergebnis @router.get("/radar") def radar_stand() -> dict: return radar.uebersicht() @router.post("/radar/suche") def radar_suche() -> dict: """Sucht sofort (Netz: Hugging Face) und liefert danach den neuen Stand.""" ergebnis = radar.suche() return {**radar.uebersicht(), "suche": ergebnis} @router.post("/radar/{kandidat_id}/uebernehmen") def radar_uebernehmen(kandidat_id: str) -> dict: return _antwort(radar.uebernehmen(kandidat_id)) @router.post("/radar/{kandidat_id}/verwerfen") def radar_verwerfen(kandidat_id: str) -> dict: return _antwort(radar.verwerfen(kandidat_id))