"""Plugin „dedup“ — Platzhalter gemäß Plugin-Vertrag. Implementiert in einer späteren Phase. Der Stub zeigt den vollen Vertrag: eigene Route, eigenes Template, Lifecycle-Hooks, Migrations-Schnittstelle. """ from __future__ import annotations from fastapi import Depends, Request from redaktionskern.auth.deps import require_user from redaktionskern.auth.models import User from redaktionskern.contracts import BasePlugin, NavEntry class DedupPlugin(BasePlugin): name = "dedup" title = "Dedup-Prüfung" description = "Prüfungen bei Import und händischem Eintrag (Platzhalter)." def __init__(self) -> None: super().__init__() @self.router.get("/dedup") def seite(request: Request, user: User = Depends(require_user)): """Platzhalterseite des Plugins.""" return self.context.templates.TemplateResponse( request=request, name="dedup/index.html", context={ "user": user, "titel": self.title, "name": self.name, "version": self.version, }, ) def navigation(self) -> list[NavEntry]: return [NavEntry(label=self.title, url="/dedup")] plugin = DedupPlugin()