import { format } from "date-fns"; import { de } from "date-fns/locale"; import Link from "next/link"; import { UserRole } from "@prisma/client"; import { AtSign, Baby, CalendarHeart, Home, Mail, Phone, Shield, Trash2, UserCircle, } from "lucide-react"; import { requireKitaSession } from "@/lib/auth-utils"; import { prisma } from "@/lib/prisma"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { DefItem, DefList, EmptyDefValue } from "@/components/ui/def-list"; import { RoleBadge } from "@/components/ui/role-badge"; import { DeleteAccountDialog } from "./_components/delete-account-dialog"; import { MyChildrenManager } from "./_components/my-children-manager"; import { CreateFamilyDialog } from "./_components/create-family-dialog"; import { ContactForm } from "./_components/contact-form"; import { StaffEmailSettings } from "../personal/forms"; export const metadata = { title: "Mein Profil · Kita-Planer" }; export default async function ProfilPage() { const session = await requireKitaSession(); const [kita, user] = await Promise.all([ prisma.kita.findUniqueOrThrow({ where: { id: session.user.kitaId }, select: { name: true }, }), prisma.user.findUniqueOrThrow({ where: { id: session.user.id }, select: { id: true, email: true, firstName: true, lastName: true, role: true, familyId: true, phone: true, street: true, postalCode: true, city: true, directoryOptInAt: true, staffDecisionEmails: true, createdAt: true, family: { select: { name: true, children: { select: { id: true, firstName: true, lastName: true, dateOfBirth: true, }, orderBy: [{ lastName: "asc" }, { firstName: "asc" }], }, }, }, dutyAssignments: { select: { id: true, duty: { select: { name: true, }, }, }, }, }, }), ]); const fullName = `${user.firstName} ${user.lastName}`.trim(); return (

PROFIL · {kita.name}

Mein{" "} Profil

{user.role === UserRole.ERZIEHER ? "Deine persönlichen Daten, dein Arbeitsbereich und Datenschutzeinstellungen." : "Deine persönlichen Daten, verknüpfte Kinder und DSGVO-Einstellungen."}

Persönliche Daten Read-only Stammdaten deines Accounts.
} /> } /> {user.role !== UserRole.ERZIEHER && (

Dein Account ist noch keinem Haushalt zugeordnet.

) } /> )}
{user.role === UserRole.ERZIEHER && ( Meine Arbeitszeit & Urlaub Wochenmodell, Urlaubsanspruch, Zeiterfassung und Überstunden. Personalbereich öffnen → )}
Kontaktdaten Für Notdienst, Adressbuch und Abstimmung in der Kita.
{user.role === UserRole.ERZIEHER && ( E-Mail-Hinweise Benachrichtigungen aus dem Personalbereich. )} {user.role !== UserRole.ERZIEHER && ( <>
Meine Kinder Kinder deines Haushalts verwalten.
({ id: child.id, firstName: child.firstName, lastName: child.lastName, dateOfBirth: child.dateOfBirth ? child.dateOfBirth.toISOString().slice(0, 10) : null, }))} canManage={!!user.familyId} />
Meine Ämter & Dienste Feste Aufgaben und laufende Zuständigkeiten.
{user.dutyAssignments.length === 0 ? (

Keine festen Ämter übernommen

Dienste und Rollen erscheinen hier, sobald sie zugewiesen sind.

) : (
{user.dutyAssignments.map((assignment) => (

{assignment.duty.name}

laufender Dienst

Aktiv
))}
)}
)}

Danger Zone

Hier kannst du dein Profil und je nach Haushaltssituation auch die zugehörigen Familiendaten DSGVO-konform löschen. Aktive Notdienst-Verpflichtungen blockieren die Löschung.

); }