-- Extends the dienstgrad CHECK constraint to include:
--   Jugendfeuerwehrmann, Probefeuerwehrmann, Verwaltungsmeister family, Verwalter,
--   and Ehren- prefixed variants of all Dienstgrade.

ALTER TABLE mitglieder_profile
  DROP CONSTRAINT IF EXISTS mitglieder_profile_dienstgrad_check;

ALTER TABLE mitglieder_profile
  ADD CONSTRAINT mitglieder_profile_dienstgrad_check
  CHECK (dienstgrad IS NULL OR dienstgrad IN (
    -- Standard Dienstgrade
    'Feuerwehranwärter',
    'Jugendfeuerwehrmann',
    'Probefeuerwehrmann',
    'Feuerwehrmann',
    'Feuerwehrfrau',
    'Oberfeuerwehrmann',
    'Oberfeuerwehrfrau',
    'Hauptfeuerwehrmann',
    'Hauptfeuerwehrfrau',
    'Löschmeister',
    'Oberlöschmeister',
    'Hauptlöschmeister',
    'Brandmeister',
    'Oberbrandmeister',
    'Hauptbrandmeister',
    'Brandinspektor',
    'Oberbrandinspektor',
    'Brandoberinspektor',
    'Brandamtmann',
    'Verwaltungsmeister',
    'Oberverwaltungsmeister',
    'Hauptverwaltungsmeister',
    'Verwalter',
    -- Ehrendienstgrade
    'Ehren-Feuerwehrmann',
    'Ehren-Feuerwehrfrau',
    'Ehren-Oberfeuerwehrmann',
    'Ehren-Oberfeuerwehrfrau',
    'Ehren-Hauptfeuerwehrmann',
    'Ehren-Hauptfeuerwehrfrau',
    'Ehren-Löschmeister',
    'Ehren-Oberlöschmeister',
    'Ehren-Hauptlöschmeister',
    'Ehren-Brandmeister',
    'Ehren-Oberbrandmeister',
    'Ehren-Hauptbrandmeister',
    'Ehren-Brandinspektor',
    'Ehren-Oberbrandinspektor',
    'Ehren-Brandoberinspektor',
    'Ehren-Brandamtmann',
    'Ehren-Verwaltungsmeister',
    'Ehren-Oberverwaltungsmeister',
    'Ehren-Hauptverwaltungsmeister',
    'Ehren-Verwalter'
  ));
