-- Migration 069: Checklisten permissions
-- Adds checklisten feature group and permissions, seeds group_permissions.

-- ═══════════════════════════════════════════════════════════════════════════
-- 1. Feature group
-- ═══════════════════════════════════════════════════════════════════════════

INSERT INTO feature_groups (id, label, sort_order) VALUES
  ('checklisten', 'Checklisten', 15)
ON CONFLICT (id) DO NOTHING;

-- ═══════════════════════════════════════════════════════════════════════════
-- 2. Permissions
-- ═══════════════════════════════════════════════════════════════════════════

INSERT INTO permissions (id, feature_group_id, label, description, sort_order) VALUES
  ('checklisten:view',             'checklisten', 'Ansehen',            'Checklisten und Ausführungen einsehen',                     1),
  ('checklisten:execute',          'checklisten', 'Ausfüllen',          'Checklisten ausfüllen und abschließen',                     2),
  ('checklisten:approve',          'checklisten', 'Freigeben',          'Checklisten nach Prüfung freigeben',                        3),
  ('checklisten:manage_templates', 'checklisten', 'Vorlagen verwalten', 'Vorlagen und Fahrzeugtypen erstellen und bearbeiten',       4),
  ('checklisten:widget',           'checklisten', 'Widget',             'Checklisten-Widget im Dashboard anzeigen',                  5)
ON CONFLICT (id) DO NOTHING;

-- ═══════════════════════════════════════════════════════════════════════════
-- 3. Seed group permissions
-- ═══════════════════════════════════════════════════════════════════════════
-- dashboard_admin has hardwired full access (not seeded).

-- Kommando: all permissions
INSERT INTO group_permissions (authentik_group, permission_id) VALUES
  ('dashboard_kommando', 'checklisten:view'),
  ('dashboard_kommando', 'checklisten:execute'),
  ('dashboard_kommando', 'checklisten:approve'),
  ('dashboard_kommando', 'checklisten:manage_templates'),
  ('dashboard_kommando', 'checklisten:widget')
ON CONFLICT DO NOTHING;

-- Fahrmeister: view, execute, approve, widget (vehicle specialist)
INSERT INTO group_permissions (authentik_group, permission_id) VALUES
  ('dashboard_fahrmeister', 'checklisten:view'),
  ('dashboard_fahrmeister', 'checklisten:execute'),
  ('dashboard_fahrmeister', 'checklisten:approve'),
  ('dashboard_fahrmeister', 'checklisten:widget')
ON CONFLICT DO NOTHING;

-- Zeugmeister: view, execute, approve, widget (equipment specialist)
INSERT INTO group_permissions (authentik_group, permission_id) VALUES
  ('dashboard_zeugmeister', 'checklisten:view'),
  ('dashboard_zeugmeister', 'checklisten:execute'),
  ('dashboard_zeugmeister', 'checklisten:approve'),
  ('dashboard_zeugmeister', 'checklisten:widget')
ON CONFLICT DO NOTHING;

-- Chargen: view, execute, widget
INSERT INTO group_permissions (authentik_group, permission_id) VALUES
  ('dashboard_chargen', 'checklisten:view'),
  ('dashboard_chargen', 'checklisten:execute'),
  ('dashboard_chargen', 'checklisten:widget')
ON CONFLICT DO NOTHING;

-- Moderator: view, widget
INSERT INTO group_permissions (authentik_group, permission_id) VALUES
  ('dashboard_moderator', 'checklisten:view'),
  ('dashboard_moderator', 'checklisten:widget')
ON CONFLICT DO NOTHING;

-- Atemschutz: view, execute, widget
INSERT INTO group_permissions (authentik_group, permission_id) VALUES
  ('dashboard_atemschutz', 'checklisten:view'),
  ('dashboard_atemschutz', 'checklisten:execute'),
  ('dashboard_atemschutz', 'checklisten:widget')
ON CONFLICT DO NOTHING;

-- Mitglied: view, widget
INSERT INTO group_permissions (authentik_group, permission_id) VALUES
  ('dashboard_mitglied', 'checklisten:view'),
  ('dashboard_mitglied', 'checklisten:widget')
ON CONFLICT DO NOTHING;
