import type { KuendigungsschutzGrund } from "./types"; // Die Personenkreise des besonderen Kündigungsschutzes — für die Auswahl in // der Oberfläche und für den Bericht. // // Die Liste steht zweimal: hier und als CHECK // chk_kuendigungsschutz_personenkreis in Migration 20260915120000. Das ist // eine bewusste Doppelung mit einer Begründung, denn die Alternativen sind // schlechter: ein Aufzählungstyp liesse einen zurückgenommenen Wert für immer // im Typ stehen, und eine Tabelle machte aus einer Rechtslage ein Stammdatum, // das jemand pflegen müsste. `npm run types:check` hält die Spalte gegen die // Migration; dass die *Werte* zusammenpassen, sichert der Test in // tests/unit/kuendigungsschutz.test.ts, der die Migration liest. // // Warum der Grund freiwillig ist: der Bestand trägt das Kennzeichen seit // Migration 20260814120000 ohne Grund. Ein Pflichtfeld hätte diese Zeilen // unänderbar gemacht — jede Änderung an einer davon wäre an einer Angabe // gescheitert, die niemand mehr nachträgt. export const KUENDIGUNGSSCHUTZ_GRUENDE: readonly KuendigungsschutzGrund[] = [ "Eltern", "Schwangerschaft", "Karenzurlaub", "Familienzeit", "Elternteilzeit", "Betriebsräte & Ersatzmitglieder", "Jugendvertrauenspersonen", "Behindertenvertrauenspersonen & Stellvertreter", "Präsenz-, Ausbildungs- oder Zivildienst", "Begünstigte behinderte ArbeitnehmerInnen", "Familienhospizkarenz", "Familienhospizteilzeit", ] as const; /** * Der Personenkreis, an dem die Angaben zur Behinderung hängen. * * Die Oberfläche blendet die Felder auf, sobald dieser Kreis gewählt wird. * Eine Bedingung in der Datenbank ist das ausdrücklich nicht — siehe die * Begründung in der Migration: wer den Personenkreis korrigiert, scheiterte * sonst daran, solange der Grad noch dransteht. */ export const GRUND_BEGUENSTIGT_BEHINDERT: KuendigungsschutzGrund = "Begünstigte behinderte ArbeitnehmerInnen"; export function istKuendigungsschutzGrund(wert: string | null | undefined): wert is KuendigungsschutzGrund { return KUENDIGUNGSSCHUTZ_GRUENDE.includes(wert as KuendigungsschutzGrund); } /** * Ob der Grad zur Begünstigung reicht. * * Die Grenze liegt bei 50 Prozent (§ 2 Behinderteneinstellungsgesetz). * Erfasst wird trotzdem jeder bescheidmässige Grad: ein Bescheid über 30 * Prozent ist eine Tatsache, auch wenn daraus kein besonderer Schutz folgt, * und wer ihn nicht eintragen darf, trägt ihn in ein Freitextfeld ein. */ export const BEGUENSTIGUNG_AB_GRAD = 50;