-- Add FDISK Standesbuch-Nr to mitglieder_profile for sync matching
ALTER TABLE mitglieder_profile
  ADD COLUMN IF NOT EXISTS fdisk_standesbuch_nr VARCHAR(32) UNIQUE;

CREATE INDEX IF NOT EXISTS idx_mitglieder_fdisk_standesbuch_nr
  ON mitglieder_profile(fdisk_standesbuch_nr);

-- Qualifications synced from FDISK
CREATE TABLE IF NOT EXISTS ausbildung (
  id                UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  user_id           UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
  kursname          VARCHAR(255) NOT NULL,
  kurs_datum        DATE,
  ablaufdatum       DATE,
  ort               VARCHAR(255),
  status            VARCHAR(32) NOT NULL DEFAULT 'abgeschlossen' CHECK (status IN (
    'abgeschlossen', 'in_bearbeitung', 'abgelaufen'
  )),
  -- Composite key from FDISK to prevent duplicates on re-sync
  fdisk_sync_key    VARCHAR(255),
  bemerkung         TEXT,
  created_at        TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
  updated_at        TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
  CONSTRAINT uq_ausbildung_user_fdisk_key UNIQUE (user_id, fdisk_sync_key)
);

CREATE INDEX IF NOT EXISTS idx_ausbildung_user_id ON ausbildung(user_id);

CREATE TRIGGER update_ausbildung_updated_at BEFORE UPDATE ON ausbildung
FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
