import type { Metadata } from 'next'; import Link from 'next/link'; import { notFound } from 'next/navigation'; import { benutzerNachId } from '@/lib/repos/benutzer'; import { inhalte } from '@/lib/inhalte'; import { inhaltVon } from '@/lib/repos/feedback'; import { istAbgeschlossen, zusammenfassung } from '@/lib/feedback/inhalt'; import { alsDatumText, alsZeitpunktText } from '@/lib/zeit'; import { Gespraechsformular } from '../Gespraechsformular'; import { bestaetigungZurueck, gespraechVerwerfen, gespraechZumLesen } from '../aktionen'; export const dynamic = 'force-dynamic'; export async function generateMetadata({ params }: { params: Promise<{ gespraechId: string }> }): Promise { const { gespraechId } = await params; const gelesen = await gespraechZumLesen(gespraechId); return { title: gelesen ? `Feedbackgespräch ${alsDatumText(gelesen.gespraech.datum)}` : 'Feedbackgespräch' }; } export default async function GespraechsSeite({ params }: { params: Promise<{ gespraechId: string }> }) { const { gespraechId } = await params; const gelesen = await gespraechZumLesen(gespraechId); if (!gelesen) notFound(); const { benutzer, gespraech, ausbildung } = gelesen; const vorlage = inhalte().feedback; const inhalt = inhaltVon(gespraech, vorlage); const summe = zusammenfassung(inhalt); const istAzubi = benutzer.rolle === 'azubi'; const azubi = benutzerNachId(ausbildung.azubiId); const ausbilder = benutzerNachId(ausbildung.ausbilderId); if (!azubi) notFound(); const fertig = istAbgeschlossen({ bestaetigtAzubi: gespraech.bestaetigtAzubi === 1, bestaetigtAusbilder: gespraech.bestaetigtAusbilder === 1, }); const bereitsBestaetigt = istAzubi ? gespraech.bestaetigtAzubi === 1 : gespraech.bestaetigtAusbilder === 1; return (
{alsDatumText(gespraech.datum)} {fertig ? ( 🔒 abgeschlossen und unveränderlich ) : ( ◐ in Arbeit )}

Feedbackgespräch

{azubi.name} {ausbilder ? ` und ${ausbilder.name}` : ''} · {ausbildung.beruf}

{/* --- Bestätigungsstand --- */}

Bestätigung

  • {ausbilder?.name ?? 'Ausbilder'} {gespraech.bestaetigtAusbilder === 1 ? `bestätigt ${alsZeitpunktText(gespraech.bestaetigtAusbilderAm)}` : 'noch offen'}
  • {azubi.name} {gespraech.bestaetigtAzubi === 1 ? `bestätigt ${alsZeitpunktText(gespraech.bestaetigtAzubiAm)}` : 'noch offen'}
{summe.abweichungen.length > 0 ? (

Unterschiedliche Sicht bei: {summe.abweichungen.join(', ')}. Genau darüber lohnt das Gespräch.

) : null} {bereitsBestaetigt && !fertig ? (
) : null}
Als PDF für die Akte {!istAzubi && gespraech.bestaetigtAzubi === 0 && gespraech.bestaetigtAusbilder === 0 ? (
) : null}
{vorlage.hinweis ? (

{vorlage.hinweis}

) : null}
); }