import type { Locale } from '../i18n/types';
import { docStrings, formatDocDate } from './docStrings';
import type { AISystem, CompanyProfile, ContentPack } from './types';

/** Gemeinsamer Kopf für systembezogene Vordrucke. */
function head(
  title: string,
  system: AISystem,
  pack: ContentPack,
  today: string,
  locale: Locale,
  profile?: CompanyProfile,
): string {
  const s = docStrings(locale);
  return [
    `# ${title}`,
    '',
    `| | |`,
    `|---|---|`,
    ...(profile && profile.name.trim() !== '' ? [`| **${s.meta.company}** | ${profile.name} |`] : []),
    `| **${s.meta.system}** | ${system.name} |`,
    `| **${s.meta.purpose}** | ${system.purpose || '—'} |`,
    `| **${s.meta.riskClass}** | ${s.risk[system.classification.riskClass]} |`,
    `| **${s.meta.createdAt}** | ${formatDocDate(today, locale)} |`,
    `| **${s.meta.contentPack}** | v${pack.version} |`,
    '',
    s.disclaimer,
    '',
  ].join('\n');
}

/**
 * Vordruck: Information des Betriebsrats nach § 90 BetrVG (Deutschland)
 * über den geplanten Einsatz eines KI-Systems.
 */
export function worksCouncilInfo(
  system: AISystem,
  pack: ContentPack,
  today: string,
  profile?: CompanyProfile,
  locale: Locale = 'de',
): string {
  const s = docStrings(locale);
  const T_ALL = {
    de: {
      title: 'Information des Betriebsrats nach § 90 BetrVG (Entwurf)',
      to: 'An den Betriebsrat der',
      subject: 'Betreff: Unterrichtung über den geplanten Einsatz eines KI-Systems',
      body: 'Sehr geehrte Mitglieder des Betriebsrats,\n\ngemäß § 90 Abs. 1 Nr. 3 BetrVG unterrichten wir Sie rechtzeitig über den geplanten Einsatz des folgenden KI-Systems und bieten die Beratung nach § 90 Abs. 2 BetrVG an. Sofern das System geeignet ist, Verhalten oder Leistung der Beschäftigten zu überwachen, werden wir zusätzlich Ihre Mitbestimmung nach § 87 Abs. 1 Nr. 6 BetrVG einholen (Betriebsvereinbarung).',
      sections: [
        ['Geplanter Einführungszeitpunkt', ''],
        ['Betroffene Abteilungen / Beschäftigtengruppen', ''],
        ['Zweck und Funktionsweise des Systems (Kurzbeschreibung)', ''],
        ['Verarbeitete Beschäftigtendaten', ''],
        ['Auswirkungen auf Arbeitsabläufe und Arbeitsplätze', ''],
        ['Geplante Schulungsmaßnahmen (Art. 4 AI Act)', ''],
        ['Ansprechpartner für die Beratung', ''],
      ],
      closing: 'Wir freuen uns auf die Beratung und stehen für Rückfragen zur Verfügung.\n\nOrt, Datum: _______________  Unterschrift (Arbeitgeber): _______________',
    },
    en: {
      title: 'Information to the works council pursuant to Sec. 90 BetrVG (draft)',
      to: 'To the works council of',
      subject: 'Subject: Information on the planned use of an AI system',
      body: 'Dear members of the works council,\n\npursuant to Sec. 90 (1) No. 3 BetrVG we inform you in due time about the planned use of the following AI system and offer consultation pursuant to Sec. 90 (2) BetrVG. If the system is capable of monitoring the behaviour or performance of employees, we will additionally seek your co-determination pursuant to Sec. 87 (1) No. 6 BetrVG (works agreement).',
      sections: [
        ['Planned date of introduction', ''],
        ['Affected departments / groups of employees', ''],
        ['Purpose and functioning of the system (summary)', ''],
        ['Data processed relating to employees', ''],
        ['Effects on work processes and workplaces', ''],
        ['Planned training measures (Art. 4 AI Act)', ''],
        ['Contact person for consultation', ''],
      ],
      closing: 'We look forward to the consultation and remain at your disposal for questions.\n\nPlace, date: _______________  Signature (employer): _______________',
    },
    fr: {
      title: 'Information du comité d’entreprise conformément au § 90 BetrVG (projet)',
      to: 'Au comité d’entreprise de',
      subject: 'Objet : Information sur l’utilisation prévue d’un système d’IA',
      body: 'Mesdames et Messieurs les membres du comité d’entreprise,\n\nconformément au § 90 al. 1 n° 3 BetrVG, nous vous informons en temps utile de l’utilisation prévue du système d’IA décrit ci-après et vous proposons une concertation conformément au § 90 al. 2 BetrVG. Si le système est susceptible de surveiller le comportement ou les performances des salariés, nous solliciterons en outre votre codétermination conformément au § 87 al. 1 n° 6 BetrVG (accord d’entreprise).',
      sections: [
        ['Date d’introduction prévue', ''],
        ['Services / groupes de salariés concernés', ''],
        ['Finalité et fonctionnement du système (résumé)', ''],
        ['Données des salariés traitées', ''],
        ['Effets sur les processus de travail et les postes de travail', ''],
        ['Mesures de formation prévues (art. 4 du règlement sur l’IA)', ''],
        ['Interlocuteur pour la concertation', ''],
      ],
      closing: 'Nous nous réjouissons de la concertation et restons à votre disposition pour toute question.\n\nLieu, date : _______________  Signature (employeur) : _______________',
    },
    it: {
      title: 'Informazione del consiglio aziendale ai sensi del § 90 BetrVG (bozza)',
      to: 'Al consiglio aziendale di',
      subject: 'Oggetto: informazione sull’impiego previsto di un sistema di IA',
      body: 'Gentili membri del consiglio aziendale,\n\nai sensi del § 90 c. 1 n. 3 BetrVG vi informiamo tempestivamente in merito all’impiego previsto del seguente sistema di IA e offriamo la consultazione ai sensi del § 90 c. 2 BetrVG. Qualora il sistema sia idoneo a monitorare il comportamento o le prestazioni dei dipendenti, richiederemo inoltre la vostra codeterminazione ai sensi del § 87 c. 1 n. 6 BetrVG (accordo aziendale).',
      sections: [
        ['Data di introduzione prevista', ''],
        ['Reparti / gruppi di dipendenti interessati', ''],
        ['Finalità e funzionamento del sistema (sintesi)', ''],
        ['Dati dei dipendenti trattati', ''],
        ['Effetti sui processi di lavoro e sui posti di lavoro', ''],
        ['Misure di formazione previste (art. 4 del regolamento sull’IA)', ''],
        ['Referente per la consultazione', ''],
      ],
      closing: 'Restiamo in attesa della consultazione e a disposizione per eventuali domande.\n\nLuogo, data: _______________  Firma (datore di lavoro): _______________',
    },
    es: {
      title: 'Información al comité de empresa conforme al § 90 BetrVG (borrador)',
      to: 'Al comité de empresa de',
      subject: 'Asunto: Información sobre el uso previsto de un sistema de IA',
      body: 'Estimados miembros del comité de empresa:\n\nconforme al § 90 apdo. 1 n.º 3 BetrVG, les informamos con la debida antelación sobre el uso previsto del siguiente sistema de IA y les ofrecemos la consulta conforme al § 90 apdo. 2 BetrVG. Si el sistema es apto para supervisar el comportamiento o el rendimiento de los empleados, recabaremos además su cogestión conforme al § 87 apdo. 1 n.º 6 BetrVG (acuerdo de empresa).',
      sections: [
        ['Fecha de introducción prevista', ''],
        ['Departamentos / grupos de empleados afectados', ''],
        ['Finalidad y funcionamiento del sistema (resumen)', ''],
        ['Datos de los empleados tratados', ''],
        ['Efectos sobre los procesos de trabajo y los puestos de trabajo', ''],
        ['Medidas de formación previstas (art. 4 del Reglamento de IA)', ''],
        ['Persona de contacto para la consulta', ''],
      ],
      closing: 'Quedamos a la espera de la consulta y a su disposición para cualquier pregunta.\n\nLugar, fecha: _______________  Firma (empleador): _______________',
    },
    pl: {
      title: 'Informacja dla rady zakładowej zgodnie z § 90 BetrVG (projekt)',
      to: 'Do rady zakładowej',
      subject: 'Temat: Informacja o planowanym wykorzystaniu systemu AI',
      body: 'Szanowni Członkowie rady zakładowej,\n\nzgodnie z § 90 ust. 1 pkt 3 BetrVG informujemy Państwa w odpowiednim czasie o planowanym wykorzystaniu opisanego poniżej systemu AI i oferujemy konsultacje zgodnie z § 90 ust. 2 BetrVG. Jeżeli system umożliwia monitorowanie zachowania lub wydajności pracowników, dodatkowo wystąpimy o Państwa współdecydowanie zgodnie z § 87 ust. 1 pkt 6 BetrVG (porozumienie zakładowe).',
      sections: [
        ['Planowany termin wdrożenia', ''],
        ['Objęte działy / grupy pracowników', ''],
        ['Cel i sposób działania systemu (krótki opis)', ''],
        ['Przetwarzane dane pracowników', ''],
        ['Wpływ na procesy pracy i stanowiska pracy', ''],
        ['Planowane działania szkoleniowe (art. 4 aktu w sprawie AI)', ''],
        ['Osoba do kontaktu w sprawie konsultacji', ''],
      ],
      closing: 'Oczekujemy na konsultacje i pozostajemy do Państwa dyspozycji w razie pytań.\n\nMiejscowość, data: _______________  Podpis (pracodawca): _______________',
    },
    cs: {
      title: 'Informování podnikové rady podle § 90 BetrVG (návrh)',
      to: 'Podnikové radě společnosti',
      subject: 'Věc: Informace o plánovaném nasazení systému AI',
      body: 'Vážení členové podnikové rady,\n\npodle § 90 odst. 1 č. 3 BetrVG Vás včas informujeme o plánovaném nasazení níže popsaného systému AI a nabízíme projednání podle § 90 odst. 2 BetrVG. Pokud je systém způsobilý sledovat chování nebo výkon zaměstnanců, vyžádáme si navíc Vaše spolurozhodování podle § 87 odst. 1 č. 6 BetrVG (podniková dohoda).',
      sections: [
        ['Plánovaný termín zavedení', ''],
        ['Dotčená oddělení / skupiny zaměstnanců', ''],
        ['Účel a způsob fungování systému (stručný popis)', ''],
        ['Zpracovávané údaje zaměstnanců', ''],
        ['Dopady na pracovní postupy a pracovní místa', ''],
        ['Plánovaná školicí opatření (čl. 4 aktu o AI)', ''],
        ['Kontaktní osoba pro projednání', ''],
      ],
      closing: 'Těšíme se na projednání a jsme Vám k dispozici pro případné dotazy.\n\nMísto, datum: _______________  Podpis (zaměstnavatel): _______________',
    },
    sk: {
      title: 'Informovanie zamestnaneckej rady podľa § 90 BetrVG (návrh)',
      to: 'Zamestnaneckej rade spoločnosti',
      subject: 'Vec: Informácia o plánovanom nasadení systému AI',
      body: 'Vážení členovia zamestnaneckej rady,\n\npodľa § 90 ods. 1 č. 3 BetrVG Vás včas informujeme o plánovanom nasadení nižšie opísaného systému AI a ponúkame prerokovanie podľa § 90 ods. 2 BetrVG. Ak je systém spôsobilý monitorovať správanie alebo výkon zamestnancov, vyžiadame si navyše Vaše spolurozhodovanie podľa § 87 ods. 1 č. 6 BetrVG (podniková dohoda).',
      sections: [
        ['Plánovaný termín zavedenia', ''],
        ['Dotknuté oddelenia / skupiny zamestnancov', ''],
        ['Účel a spôsob fungovania systému (stručný opis)', ''],
        ['Spracúvané údaje zamestnancov', ''],
        ['Vplyvy na pracovné postupy a pracovné miesta', ''],
        ['Plánované školiace opatrenia (čl. 4 aktu o AI)', ''],
        ['Kontaktná osoba pre prerokovanie', ''],
      ],
      closing: 'Tešíme sa na prerokovanie a sme Vám k dispozícii pre prípadné otázky.\n\nMiesto, dátum: _______________  Podpis (zamestnávateľ): _______________',
    },
    ro: {
      title: 'Informarea comitetului de întreprindere conform § 90 BetrVG (proiect)',
      to: 'Către comitetul de întreprindere al',
      subject: 'Subiect: Informare privind utilizarea planificată a unui sistem de IA',
      body: 'Stimați membri ai comitetului de întreprindere,\n\nconform § 90 alin. 1 nr. 3 BetrVG, vă informăm în timp util cu privire la utilizarea planificată a sistemului de IA descris mai jos și vă oferim consultarea conform § 90 alin. 2 BetrVG. În cazul în care sistemul este apt să monitorizeze comportamentul sau performanța angajaților, vom solicita în plus codeterminarea dumneavoastră conform § 87 alin. 1 nr. 6 BetrVG (acord de întreprindere).',
      sections: [
        ['Data planificată a introducerii', ''],
        ['Departamente / grupuri de angajați vizate', ''],
        ['Scopul și modul de funcționare a sistemului (descriere succintă)', ''],
        ['Datele angajaților prelucrate', ''],
        ['Efecte asupra proceselor de muncă și a locurilor de muncă', ''],
        ['Măsuri de formare planificate (art. 4 din Regulamentul privind IA)', ''],
        ['Persoana de contact pentru consultare', ''],
      ],
      closing: 'Așteptăm cu interes consultarea și vă stăm la dispoziție pentru întrebări.\n\nLocalitate, data: _______________  Semnătura (angajator): _______________',
    },
  } as const;
  const T = T_ALL[locale];

  const lines = [head(T.title, system, pack, today, locale, profile)];
  lines.push(`${T.to} ${profile?.name ?? '_______________'}`, '', `**${T.subject}**`, '', T.body, '');
  for (const [label] of T.sections) {
    lines.push(`## ${label}`, '', s.todo, '');
  }
  lines.push(T.closing);
  return lines.join('\n');
}

/**
 * Vordruck: Information der Beschäftigten über den KI-Einsatz
 * (Art. 26 Abs. 7 AI Act; in Italien zusätzlich Legge 132/2025).
 */
export function employeeInfo(
  system: AISystem,
  pack: ContentPack,
  today: string,
  profile?: CompanyProfile,
  locale: Locale = 'de',
): string {
  const s = docStrings(locale);
  const T_ALL = {
    de: {
      title: 'Mitarbeiterinformation zum Einsatz eines KI-Systems (Entwurf)',
      body: 'Liebe Kolleginnen und Kollegen,\n\nhiermit informieren wir Sie, dass in unserem Unternehmen das nachfolgend beschriebene KI-System eingesetzt wird. Diese Information erfolgt nach Art. 26 Abs. 7 der EU-KI-Verordnung sowie einschlägigem nationalem Recht.',
      sections: [
        ['Was das System tut und wofür es eingesetzt wird', ''],
        ['Welche Entscheidungen das System unterstützt (Letztentscheidung trifft der Mensch)', ''],
        ['Welche Ihrer Daten verarbeitet werden', ''],
        ['Menschliche Aufsicht: wer das System überwacht und wie Sie Einwände erheben können', ''],
        ['Ihre Ansprechpartner (Fachabteilung, Datenschutzbeauftragte/r, Betriebsrat)', ''],
      ],
    },
    en: {
      title: 'Employee information on the use of an AI system (draft)',
      body: 'Dear colleagues,\n\nwe hereby inform you that the AI system described below will be used in our company. This information is provided pursuant to Art. 26(7) of the EU AI Act and applicable national law.',
      sections: [
        ['What the system does and what it is used for', ''],
        ['Which decisions the system supports (final decisions are made by humans)', ''],
        ['Which of your data is processed', ''],
        ['Human oversight: who supervises the system and how you can raise objections', ''],
        ['Your contacts (specialist department, data protection officer, works council)', ''],
      ],
    },
    fr: {
      title: 'Information des salariés sur l’utilisation d’un système d’IA (projet)',
      body: 'Chères et chers collègues,\n\nnous vous informons par la présente que le système d’IA décrit ci-après sera utilisé dans notre entreprise. Cette information est fournie par le déployeur conformément à l’article 26, paragraphe 7, du règlement européen sur l’IA ainsi qu’au droit national applicable.',
      sections: [
        ['Ce que fait le système et à quoi il sert', ''],
        ['Quelles décisions le système soutient (la décision finale revient à l’humain)', ''],
        ['Quelles données vous concernant sont traitées', ''],
        ['Contrôle humain : qui supervise le système et comment vous pouvez formuler des objections', ''],
        ['Vos interlocuteurs (service spécialisé, délégué·e à la protection des données, comité d’entreprise)', ''],
      ],
    },
    it: {
      title: 'Informazione ai dipendenti sull’impiego di un sistema di IA (bozza)',
      body: 'Care colleghe e cari colleghi,\n\ncon la presente vi informiamo che nella nostra azienda sarà impiegato il sistema di IA descritto di seguito. Questa informazione è fornita dal deployer ai sensi dell’art. 26, par. 7, del regolamento europeo sull’IA nonché del diritto nazionale applicabile.',
      sections: [
        ['Che cosa fa il sistema e a che cosa serve', ''],
        ['Quali decisioni il sistema supporta (la decisione finale spetta all’essere umano)', ''],
        ['Quali dei vostri dati vengono trattati', ''],
        ['Sorveglianza umana: chi supervisiona il sistema e come potete sollevare obiezioni', ''],
        ['I vostri referenti (reparto competente, responsabile della protezione dei dati, consiglio aziendale)', ''],
      ],
    },
    es: {
      title: 'Información a los empleados sobre el uso de un sistema de IA (borrador)',
      body: 'Estimadas compañeras y compañeros:\n\npor la presente les informamos de que en nuestra empresa se utilizará el sistema de IA descrito a continuación. Esta información la facilita el responsable del despliegue conforme al art. 26, apdo. 7, del Reglamento europeo de IA y al Derecho nacional aplicable.',
      sections: [
        ['Qué hace el sistema y para qué se utiliza', ''],
        ['Qué decisiones apoya el sistema (la decisión final la toma una persona)', ''],
        ['Cuáles de sus datos se tratan', ''],
        ['Supervisión humana: quién supervisa el sistema y cómo pueden plantear objeciones', ''],
        ['Sus personas de contacto (departamento especializado, delegado/a de protección de datos, comité de empresa)', ''],
      ],
    },
    pl: {
      title: 'Informacja dla pracowników o wykorzystaniu systemu AI (projekt)',
      body: 'Drogie Koleżanki, drodzy Koledzy,\n\nniniejszym informujemy, że w naszym przedsiębiorstwie będzie wykorzystywany opisany poniżej system AI. Informacja ta jest przekazywana przez podmiot stosujący zgodnie z art. 26 ust. 7 europejskiego rozporządzenia w sprawie AI oraz właściwym prawem krajowym.',
      sections: [
        ['Co robi system i do czego jest wykorzystywany', ''],
        ['Jakie decyzje system wspiera (ostateczną decyzję podejmuje człowiek)', ''],
        ['Które z Państwa danych są przetwarzane', ''],
        ['Nadzór ludzki: kto nadzoruje system i jak mogą Państwo zgłaszać zastrzeżenia', ''],
        ['Osoby do kontaktu (dział merytoryczny, inspektor ochrony danych, rada zakładowa)', ''],
      ],
    },
    cs: {
      title: 'Informace pro zaměstnance o nasazení systému AI (návrh)',
      body: 'Milé kolegyně, milí kolegové,\n\ntímto Vás informujeme, že v naší společnosti bude nasazen níže popsaný systém AI. Tuto informaci poskytuje zavádějící subjekt podle čl. 26 odst. 7 evropského aktu o AI a příslušného vnitrostátního práva.',
      sections: [
        ['Co systém dělá a k čemu se používá', ''],
        ['Jaká rozhodnutí systém podporuje (konečné rozhodnutí činí člověk)', ''],
        ['Které z Vašich údajů jsou zpracovávány', ''],
        ['Lidský dohled: kdo na systém dohlíží a jak můžete vznést námitky', ''],
        ['Vaše kontaktní osoby (odborné oddělení, pověřenec pro ochranu osobních údajů, podniková rada)', ''],
      ],
    },
    sk: {
      title: 'Informácia pre zamestnancov o nasadení systému AI (návrh)',
      body: 'Milé kolegyne, milí kolegovia,\n\ntýmto Vás informujeme, že v našej spoločnosti bude nasadený nižšie opísaný systém AI. Túto informáciu poskytuje nasadzujúci subjekt podľa čl. 26 ods. 7 európskeho aktu o AI a príslušného vnútroštátneho práva.',
      sections: [
        ['Čo systém robí a na čo sa používa', ''],
        ['Aké rozhodnutia systém podporuje (konečné rozhodnutie prijíma človek)', ''],
        ['Ktoré z Vašich údajov sa spracúvajú', ''],
        ['Ľudský dohľad: kto na systém dohliada a ako môžete vzniesť námietky', ''],
        ['Vaše kontaktné osoby (odborné oddelenie, zodpovedná osoba pre ochranu údajov, zamestnanecká rada)', ''],
      ],
    },
    ro: {
      title: 'Informarea angajaților cu privire la utilizarea unui sistem de IA (proiect)',
      body: 'Dragi colege și colegi,\n\nprin prezenta vă informăm că în întreprinderea noastră va fi utilizat sistemul de IA descris mai jos. Această informare este furnizată de implementator conform art. 26 alin. (7) din Regulamentul european privind IA, precum și dreptului național aplicabil.',
      sections: [
        ['Ce face sistemul și la ce este utilizat', ''],
        ['Ce decizii sprijină sistemul (decizia finală aparține omului)', ''],
        ['Care dintre datele dumneavoastră sunt prelucrate', ''],
        ['Supravegherea umană: cine supraveghează sistemul și cum puteți formula obiecții', ''],
        ['Persoanele dumneavoastră de contact (departamentul de specialitate, responsabilul cu protecția datelor, comitetul de întreprindere)', ''],
      ],
    },
  } as const;
  const T = T_ALL[locale];

  const lines = [head(T.title, system, pack, today, locale, profile)];
  lines.push(T.body, '');
  for (const [label] of T.sections) {
    lines.push(`## ${label}`, '', s.todo, '');
  }
  return lines.join('\n');
}

/** Vordruck: Grundrechte-Folgenabschätzung (FRIA, Art. 27) — Arbeitsvorlage. */
export function friaTemplate(
  system: AISystem,
  pack: ContentPack,
  today: string,
  profile?: CompanyProfile,
  locale: Locale = 'de',
): string {
  const s = docStrings(locale);
  const T_ALL = {
    de: {
      title: 'Grundrechte-Folgenabschätzung (FRIA, Art. 27) — Arbeitsvorlage',
      sections: [
        'Beschreibung des Einsatzprozesses und der Zweckbestimmung',
        'Zeitraum und Häufigkeit der Nutzung',
        'Kategorien betroffener Personen und Gruppen',
        'Spezifische Schadensrisiken für Grundrechte (Nichtdiskriminierung, Privatsphäre, Meinungsfreiheit, soziale Rechte)',
        'Maßnahmen der menschlichen Aufsicht gemäß Betriebsanleitung',
        'Maßnahmen bei Eintritt der Risiken (interne Governance, Beschwerdemechanismen)',
        'Ergebnis und Entscheidung (Einsatz / Einsatz mit Auflagen / kein Einsatz)',
        'Meldung an die Marktüberwachungsbehörde (soweit erforderlich)',
      ],
    },
    en: {
      title: 'Fundamental rights impact assessment (FRIA, Art. 27) — working template',
      sections: [
        'Description of the deployment process and intended use',
        'Period and frequency of use',
        'Categories of natural persons and groups likely to be affected',
        'Specific risks of harm to fundamental rights (non-discrimination, privacy, freedom of expression, social rights)',
        'Human oversight measures as per instructions for use',
        'Measures in case risks materialise (internal governance, complaint mechanisms)',
        'Result and decision (use / use with conditions / no use)',
        'Notification to the market surveillance authority (where required)',
      ],
    },
    fr: {
      title: 'Analyse d’impact sur les droits fondamentaux (AIFD/FRIA, art. 27) — modèle de travail',
      sections: [
        'Description du processus de déploiement et de la destination prévue',
        'Période et fréquence d’utilisation',
        'Catégories de personnes physiques et de groupes susceptibles d’être concernés',
        'Risques spécifiques d’atteinte aux droits fondamentaux (non-discrimination, vie privée, liberté d’expression, droits sociaux)',
        'Mesures de contrôle humain conformément à la notice d’utilisation',
        'Mesures en cas de matérialisation des risques (gouvernance interne, mécanismes de réclamation)',
        'Résultat et décision (utilisation / utilisation sous conditions / pas d’utilisation)',
        'Notification à l’autorité de surveillance du marché (le cas échéant)',
      ],
    },
    it: {
      title: 'Valutazione d’impatto sui diritti fondamentali (FRIA, art. 27) — modello di lavoro',
      sections: [
        'Descrizione del processo di impiego e della finalità prevista',
        'Periodo e frequenza di utilizzo',
        'Categorie di persone fisiche e gruppi verosimilmente interessati',
        'Rischi specifici di danno ai diritti fondamentali (non discriminazione, vita privata, libertà di espressione, diritti sociali)',
        'Misure di sorveglianza umana secondo le istruzioni per l’uso',
        'Misure in caso di concretizzazione dei rischi (governance interna, meccanismi di reclamo)',
        'Risultato e decisione (impiego / impiego con condizioni / nessun impiego)',
        'Notifica all’autorità di vigilanza del mercato (ove richiesto)',
      ],
    },
    es: {
      title: 'Evaluación de impacto sobre los derechos fundamentales (FRIA, art. 27) — plantilla de trabajo',
      sections: [
        'Descripción del proceso de despliegue y de la finalidad prevista',
        'Período y frecuencia de uso',
        'Categorías de personas físicas y grupos que puedan verse afectados',
        'Riesgos específicos de perjuicio para los derechos fundamentales (no discriminación, privacidad, libertad de expresión, derechos sociales)',
        'Medidas de supervisión humana conforme a las instrucciones de uso',
        'Medidas en caso de materialización de los riesgos (gobernanza interna, mecanismos de reclamación)',
        'Resultado y decisión (uso / uso con condiciones / no uso)',
        'Notificación a la autoridad de vigilancia del mercado (cuando proceda)',
      ],
    },
    pl: {
      title: 'Ocena skutków dla praw podstawowych (FRIA, art. 27) — wzór roboczy',
      sections: [
        'Opis procesu wdrożenia i przewidzianego przeznaczenia',
        'Okres i częstotliwość użytkowania',
        'Kategorie osób fizycznych i grup, które mogą być dotknięte',
        'Szczególne ryzyka szkody dla praw podstawowych (niedyskryminacja, prywatność, wolność wypowiedzi, prawa socjalne)',
        'Środki nadzoru ludzkiego zgodnie z instrukcją obsługi',
        'Środki na wypadek urzeczywistnienia się ryzyk (wewnętrzne zarządzanie, mechanizmy skargowe)',
        'Wynik i decyzja (wykorzystanie / wykorzystanie pod warunkami / brak wykorzystania)',
        'Powiadomienie organu nadzoru rynku (o ile wymagane)',
      ],
    },
    cs: {
      title: 'Posouzení dopadů na základní práva (FRIA, čl. 27) — pracovní šablona',
      sections: [
        'Popis procesu nasazení a zamýšleného účelu',
        'Doba a četnost používání',
        'Kategorie fyzických osob a skupin, které mohou být dotčeny',
        'Specifická rizika újmy na základních právech (zákaz diskriminace, soukromí, svoboda projevu, sociální práva)',
        'Opatření lidského dohledu podle návodu k použití',
        'Opatření pro případ naplnění rizik (interní správa a řízení, mechanismy pro stížnosti)',
        'Výsledek a rozhodnutí (nasazení / nasazení s podmínkami / žádné nasazení)',
        'Oznámení orgánu dozoru nad trhem (je-li vyžadováno)',
      ],
    },
    sk: {
      title: 'Posúdenie vplyvu na základné práva (FRIA, čl. 27) — pracovná šablóna',
      sections: [
        'Opis procesu nasadenia a zamýšľaného účelu',
        'Obdobie a frekvencia používania',
        'Kategórie fyzických osôb a skupín, ktoré môžu byť dotknuté',
        'Špecifické riziká ujmy na základných právach (nediskriminácia, súkromie, sloboda prejavu, sociálne práva)',
        'Opatrenia ľudského dohľadu podľa návodu na použitie',
        'Opatrenia pre prípad naplnenia rizík (interná správa a riadenie, mechanizmy podávania sťažností)',
        'Výsledok a rozhodnutie (nasadenie / nasadenie s podmienkami / žiadne nasadenie)',
        'Oznámenie orgánu dohľadu nad trhom (ak sa vyžaduje)',
      ],
    },
    ro: {
      title: 'Evaluarea impactului asupra drepturilor fundamentale (FRIA, art. 27) — model de lucru',
      sections: [
        'Descrierea procesului de implementare și a scopului preconizat',
        'Perioada și frecvența utilizării',
        'Categoriile de persoane fizice și de grupuri susceptibile de a fi afectate',
        'Riscuri specifice de prejudiciu pentru drepturile fundamentale (nediscriminare, viață privată, libertate de exprimare, drepturi sociale)',
        'Măsuri de supraveghere umană conform instrucțiunilor de utilizare',
        'Măsuri în cazul materializării riscurilor (guvernanță internă, mecanisme de plângere)',
        'Rezultat și decizie (utilizare / utilizare cu condiții / neutilizare)',
        'Notificarea autorității de supraveghere a pieței (dacă este necesar)',
      ],
    },
  } as const;
  const T = T_ALL[locale];

  const lines = [head(T.title, system, pack, today, locale, profile)];
  T.sections.forEach((sec, i) => {
    lines.push(`## ${i + 1}. ${sec}`, '', s.todo, '');
  });
  return lines.join('\n');
}

/** Vordruck: Meldung eines schwerwiegenden Vorfalls (Art. 73) — internes Formular. */
export function incidentReportForm(
  system: AISystem,
  pack: ContentPack,
  today: string,
  profile?: CompanyProfile,
  locale: Locale = 'de',
): string {
  const s = docStrings(locale);
  const T_ALL = {
    de: {
      title: 'Meldung eines schwerwiegenden Vorfalls (Art. 73) — internes Formular',
      note: 'Fristen: Meldung an die Marktüberwachungsbehörde unverzüglich nach Feststellung des Kausalzusammenhangs, spätestens 15 Tage; Tod einer Person: 10 Tage; weitverbreiteter Verstoß / kritische Infrastruktur: 2 Tage.',
      fields: [
        'Datum/Uhrzeit des Vorfalls und der Kenntnisnahme',
        'Beschreibung des Vorfalls und unmittelbare Folgen',
        'Betroffene Personen / eingetretener Schaden (Gesundheit, Sicherheit, Grundrechte)',
        'Vermutete Ursache / Zusammenhang mit dem KI-System',
        'Ergriffene Sofortmaßnahmen (Eindämmung, Abschaltung)',
        'Gemeldet an (Behörde, Anbieter, interne Stellen) mit Datum',
        'Korrekturmaßnahmen und Lessons Learned',
        'Verantwortliche Person (Name, Funktion, Unterschrift)',
      ],
    },
    en: {
      title: 'Serious incident report (Art. 73) — internal form',
      note: 'Deadlines: report to the market surveillance authority immediately after establishing the causal link, at the latest within 15 days; death of a person: 10 days; widespread infringement / critical infrastructure: 2 days.',
      fields: [
        'Date/time of the incident and of becoming aware',
        'Description of the incident and immediate consequences',
        'Persons affected / damage incurred (health, safety, fundamental rights)',
        'Presumed cause / connection with the AI system',
        'Immediate measures taken (containment, shutdown)',
        'Reported to (authority, provider, internal bodies) with date',
        'Corrective actions and lessons learned',
        'Responsible person (name, function, signature)',
      ],
    },
    fr: {
      title: 'Signalement d’un incident grave (art. 73) — formulaire interne',
      note: 'Délais : signalement à l’autorité de surveillance du marché immédiatement après l’établissement du lien de causalité, au plus tard dans un délai de 15 jours ; décès d’une personne : 10 jours ; infraction de grande ampleur / infrastructure critique : 2 jours.',
      fields: [
        'Date/heure de l’incident et de la prise de connaissance',
        'Description de l’incident et conséquences immédiates',
        'Personnes concernées / dommages survenus (santé, sécurité, droits fondamentaux)',
        'Cause présumée / lien avec le système d’IA',
        'Mesures immédiates prises (confinement, mise hors service)',
        'Signalé à (autorité, fournisseur, services internes) avec date',
        'Mesures correctives et enseignements tirés',
        'Personne responsable (nom, fonction, signature)',
      ],
    },
    it: {
      title: 'Segnalazione di un incidente grave (art. 73) — modulo interno',
      note: 'Termini: segnalazione all’autorità di vigilanza del mercato immediatamente dopo l’accertamento del nesso di causalità, al più tardi entro 15 giorni; decesso di una persona: 10 giorni; violazione diffusa / infrastruttura critica: 2 giorni.',
      fields: [
        'Data/ora dell’incidente e della presa di conoscenza',
        'Descrizione dell’incidente e conseguenze immediate',
        'Persone interessate / danni verificatisi (salute, sicurezza, diritti fondamentali)',
        'Causa presunta / collegamento con il sistema di IA',
        'Misure immediate adottate (contenimento, disattivazione)',
        'Segnalato a (autorità, fornitore, organi interni) con data',
        'Misure correttive e lezioni apprese',
        'Persona responsabile (nome, funzione, firma)',
      ],
    },
    es: {
      title: 'Notificación de un incidente grave (art. 73) — formulario interno',
      note: 'Plazos: notificación a la autoridad de vigilancia del mercado inmediatamente después de establecer el nexo causal, a más tardar en un plazo de 15 días; fallecimiento de una persona: 10 días; infracción generalizada / infraestructura crítica: 2 días.',
      fields: [
        'Fecha/hora del incidente y del momento en que se tuvo conocimiento',
        'Descripción del incidente y consecuencias inmediatas',
        'Personas afectadas / daños producidos (salud, seguridad, derechos fundamentales)',
        'Causa presunta / relación con el sistema de IA',
        'Medidas inmediatas adoptadas (contención, desconexión)',
        'Notificado a (autoridad, proveedor, órganos internos) con fecha',
        'Medidas correctoras y lecciones aprendidas',
        'Persona responsable (nombre, cargo, firma)',
      ],
    },
    pl: {
      title: 'Zgłoszenie poważnego incydentu (art. 73) — formularz wewnętrzny',
      note: 'Terminy: zgłoszenie do organu nadzoru rynku niezwłocznie po ustaleniu związku przyczynowego, najpóźniej w ciągu 15 dni; śmierć osoby: 10 dni; powszechne naruszenie / infrastruktura krytyczna: 2 dni.',
      fields: [
        'Data/godzina incydentu i powzięcia o nim wiadomości',
        'Opis incydentu i bezpośrednie skutki',
        'Osoby dotknięte / powstała szkoda (zdrowie, bezpieczeństwo, prawa podstawowe)',
        'Przypuszczalna przyczyna / związek z systemem AI',
        'Podjęte środki natychmiastowe (ograniczenie skutków, wyłączenie)',
        'Zgłoszono do (organ, dostawca, jednostki wewnętrzne) wraz z datą',
        'Działania korygujące i wyciągnięte wnioski',
        'Osoba odpowiedzialna (imię i nazwisko, funkcja, podpis)',
      ],
    },
    cs: {
      title: 'Hlášení závažného incidentu (čl. 73) — interní formulář',
      note: 'Lhůty: hlášení orgánu dozoru nad trhem neprodleně po zjištění příčinné souvislosti, nejpozději do 15 dnů; úmrtí osoby: 10 dnů; rozsáhlé porušení / kritická infrastruktura: 2 dny.',
      fields: [
        'Datum/čas incidentu a okamžiku, kdy jsme se o něm dozvěděli',
        'Popis incidentu a bezprostřední následky',
        'Dotčené osoby / vzniklá škoda (zdraví, bezpečnost, základní práva)',
        'Předpokládaná příčina / souvislost se systémem AI',
        'Přijatá okamžitá opatření (omezení dopadů, odstavení)',
        'Nahlášeno komu (orgán, poskytovatel, interní útvary) s datem',
        'Nápravná opatření a získané poznatky',
        'Odpovědná osoba (jméno, funkce, podpis)',
      ],
    },
    sk: {
      title: 'Hlásenie závažného incidentu (čl. 73) — interný formulár',
      note: 'Lehoty: hlásenie orgánu dohľadu nad trhom bezodkladne po zistení príčinnej súvislosti, najneskôr do 15 dní; úmrtie osoby: 10 dní; rozsiahle porušenie / kritická infraštruktúra: 2 dni.',
      fields: [
        'Dátum/čas incidentu a okamihu, keď sme sa o ňom dozvedeli',
        'Opis incidentu a bezprostredné následky',
        'Dotknuté osoby / vzniknutá škoda (zdravie, bezpečnosť, základné práva)',
        'Predpokladaná príčina / súvislosť so systémom AI',
        'Prijaté okamžité opatrenia (obmedzenie dôsledkov, odstavenie)',
        'Nahlásené komu (orgán, poskytovateľ, interné útvary) s dátumom',
        'Nápravné opatrenia a získané poznatky',
        'Zodpovedná osoba (meno, funkcia, podpis)',
      ],
    },
    ro: {
      title: 'Raportarea unui incident grav (art. 73) — formular intern',
      note: 'Termene: raportare către autoritatea de supraveghere a pieței imediat după stabilirea legăturii de cauzalitate, cel târziu în termen de 15 zile; decesul unei persoane: 10 zile; încălcare pe scară largă / infrastructură critică: 2 zile.',
      fields: [
        'Data/ora incidentului și a luării la cunoștință',
        'Descrierea incidentului și consecințele imediate',
        'Persoane afectate / prejudiciul produs (sănătate, siguranță, drepturi fundamentale)',
        'Cauza prezumată / legătura cu sistemul de IA',
        'Măsuri imediate luate (limitarea efectelor, oprirea sistemului)',
        'Raportat către (autoritate, furnizor, structuri interne) cu data',
        'Măsuri corective și lecții învățate',
        'Persoana responsabilă (nume, funcție, semnătură)',
      ],
    },
  } as const;
  const T = T_ALL[locale];

  const lines = [head(T.title, system, pack, today, locale, profile)];
  lines.push(`> ${T.note}`, '');
  T.fields.forEach((f, i) => {
    lines.push(`## ${i + 1}. ${f}`, '', s.todo, '');
  });
  return lines.join('\n');
}
