import type { Metadata } from 'next' import { redirect } from 'next/navigation' import { KeyRound, UserPlus } from 'lucide-react' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert' import { aktuellerBenutzer, meineBetreuten } from '@/lib/auth/sitzung' import { db } from '@/lib/db' import { ZugangFormular } from './zugang-formular' import { BetreuungFormular } from './betreuung-formular' export const metadata: Metadata = { title: 'Ersteinrichtung' } export const dynamic = 'force-dynamic' /** * Ersteinrichtung in drei Schritten. * * Diese Seite liegt bewusst ausserhalb des Anwendungsrahmens: der Rahmen * setzt einen Benutzer, einen zweiten Faktor UND eine betreute Person * voraus. Beim allerersten Start gibt es nichts davon. */ export default async function ErsteinrichtungSeite() { const anzahlBenutzer = await db.user.count({ where: { geloeschtAm: null } }) // Die Sperrzeile ist die eigentliche Auskunft darueber, ob eingerichtet // wurde. Der Benutzerzaehler allein genuegt nicht: Liegt der erste Zugang // im Papierkorb, stuende Schritt 1 sonst wieder offen. const sperre = await db.ersteinrichtung.findUnique({ where: { id: 'einmalig' }, select: { id: true }, }) // --- Schritt 1: Es gibt noch keinen Zugang ------------------------------- if (anzahlBenutzer === 0 && !sperre) { return ( <> Dieser erste Zugang verwaltet auch die Anwendung. Danach richtest du den zweiten Faktor ein und legst die betreute Person an. ) } const benutzer = await aktuellerBenutzer() if (!benutzer) redirect('/anmelden') // --- Schritt 2: Zweiter Faktor fehlt noch -------------------------------- if (!benutzer.totpAktiviertAm) redirect('/zwei-faktor/einrichten') // --- Schritt 3: Noch keine betreute Person ------------------------------ const betreute = await meineBetreuten(benutzer) if (betreute.length > 0) redirect('/heute') return ( Schritt 3 von 3: Die betreute Person Nur das Nötigste — alles Weitere trägst du später in Ruhe unter Stammdaten nach. Das{' '} Bestellungsdatum ist das wichtigste Feld: daraus berechnet die Anwendung das Betreuungsjahr und damit deine gesetzlichen Fristen. ) }