const db = require('./src/config/database').getDatabase();

const entries = [
    ['IT Nexus Server', `IP: 192.168.0.194
SSH: root@192.168.0.194
Projekt: /opt/it-nexus/
Container: fido-backend (Port 5000), fido-frontend (Port 443/80)
URL: https://it-nexus.cereda-systems.de
Agent-Script: /opt/it-nexus/agent/ (Volume-Mount ./agent:/app/agent:ro)
Deploy: scp → Server → docker compose build X && docker compose up -d X`, 'Infrastruktur'],

    ['Proxmox Host', `IP: 192.168.0.184
SSH: root@192.168.0.184
Node: hve-01
API Token: root@pam!monitoring=ca287965-3d33-49ec-a069-1bb80fd2e95d
Web UI: https://192.168.0.184:8006`, 'Proxmox'],

    ['LXC Container Übersicht', `CT 102 | IT Nexus   | 192.168.0.194 | Hauptproduktion
CT 103 | Diverses   | -             | Docker-Container
CT 110 | CT-TBO-AI  | 192.168.0.61  | AI-Projekt (Björn Enders)
CT 111 | Unbekannt  | -             | ?

CT-110 SSH: root@192.168.0.61
Key-Datei: C:/Users/gruessing/OneDrive - Cereda Systems GmbH/Desktop/ct110_key`, 'Proxmox'],

    ['Storage & Netzwerk', `Synology NAS: 192.168.0.60
iSCSI-LUN: 500GB → iscsi-synology auf Proxmox → iscsi-lvm (LVM on top)
IT Nexus CT: läuft auf local-lvm (NICHT auf NAS - wichtig!)
Gateway: 192.168.0.254
Domain: cereda-systems.de`, 'Infrastruktur'],

    ['Deploy-Workflow', `SCHNELL (einzelne Datei, kein Rebuild):
scp datei.js root@192.168.0.194:/opt/it-nexus/pfad/datei.js
docker cp /opt/it-nexus/pfad/datei.js fido-backend:/app/pfad/datei.js
docker restart fido-backend

VOLLSTÄNDIG (nach vielen Änderungen):
scp ... root@192.168.0.194:/opt/it-nexus/...
ssh root@192.168.0.194 "cd /opt/it-nexus && docker compose build backend frontend && docker compose up -d backend frontend"

WICHTIG: docker compose restart rebuildet NICHT → immer build + up -d
Agent-Dateien: Volume-Mount → kein Rebuild nötig`, 'IT Nexus'],

    ['IT Nexus Rollen & Architektur', `Rollen:
- super_admin, admin → Vollzugriff
- support, bearbeiter → Helpdesk + IT-Verwaltung
- benutzer, hr_personal, buchhaltung, produktion → eingeschränkt

WICHTIG: user.role_name im Frontend (NICHT user.role!)

Stack: Node.js + Express + SQLite + React (CRA) + nginx
KI: Claude claude-sonnet-4-6 via Anthropic API
Integrationen: Microsoft Graph API, Proxmox REST API, Azure AD`, 'IT Nexus'],

    ['Windows Agent v1.3.0', `Check-in: alle 1 Minute als Scheduled Task (SYSTEM)
Announcement Watcher: alle 15 Sekunden (separater Task)
Auto-Update: beim Check-in wenn agent_version in Response abweicht
Staged Rollout: per Gruppe (Test → Pilot → Produktion)

Endpunkte ohne JWT (nur X-Agent-Key):
POST /api/monitoring/checkin
POST /api/monitoring/announcements-poll
POST /api/patch/commands/result
POST /api/announcements/:id/ack-agent
GET  /api/monitoring/agent-script

WICHTIG: Läuft als SYSTEM → Dialoge NIE direkt anzeigen!
Fix: ScheduledTask als eingeloggter User erstellen`, 'Agent'],

    ['Intune Agent-Deployment', `Erkennungsregel (Registry):
Pfad: HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{B3F7A2C1-4E8D-4F2A-9B1C-7D3E5F6A8B2C}
Wertname: DisplayVersion
Operator: Größer oder gleich (aktuelle Version)
32-Bit auf 64-Bit: JA (Pflicht!)

Fehler 0x87D1041C = Erkennungsregel-Pfad falsch (kein _is1 Suffix!)
Install: msiexec /i Agent.msi /quiet /norestart`, 'Agent'],

    ['Docker in LXC - Fix runc', `PROBLEM: Unprivileged LXC + Docker 29.x + runc 1.3.x = BRICHT
Fehler: open sysctl net.ipv4.ip_unprivileged_port_start: permission denied

FIX - runc 1.2.5 von GitHub installieren:
curl -L https://github.com/opencontainers/runc/releases/download/v1.2.5/runc.amd64 -o /usr/bin/runc
chmod +x /usr/bin/runc

CT-102: Docker 27.5.1 + Ubuntu 24.04 runc 1.2.5 → funktioniert
CT-110: Docker 29.4.2 + manuell runc 1.2.5 → funktioniert nach Fix

WICHTIG: unprivileged lässt sich nach Erstellung NICHT mehr ändern!
LXC Config für Docker: features: nesting=1 (nur das reicht!)`, 'Erkenntnisse'],

    ['Microsoft Graph & Azure', `Benötigte Application Permissions:
- Mail.ReadWrite (Postfach lesen/schreiben)
- SecurityAlert.Read.All (MDO Alerts)
- Group.Read.All, User.Read.All (Entra-Verwaltung)
- Team.ReadBasic.All (fehlt noch → Teams-Tab nicht voll funktionsfähig)

MDO: SecurityAlert.Read.All braucht Admin Consent!
Monitoring-Mailbox: helpdesk@cereda-systems.de`, 'Sicherheit'],

    ['Aktive Projekte Mai 2026', `✅ Monitoring (CheckMK-Style + Proxmox integriert)
✅ Patch Management (Staged Rollout Test→Pilot→Produktion)
✅ Windows Agent v1.3.0
✅ Ankündigungen (Desktop-Popup via Agent, 15-Sek Poll)
✅ Microsoft Defender / MDO Tab
✅ Docker CT-110 Fix (runc 1.2.5)
✅ KI Wissendatenbank

🔄 Agent v1.4.0: Software-Inventar, BitLocker, Defender-Status (geplant)
⏳ VM-Migrationen: CT102, CT103, VM109 noch auf CeredaNAS NFS`, 'Projekte'],

    ['API Keys & Zugänge', `Agent API Key: itx-4CPJPTHmCfdrL9D62WacCATEvuvULXcp7ECMpSaNUjsS344F6_L4Ug
Anthropic API: in docker-compose.yml als ANTHROPIC_API_KEY
Proxmox API Token: root@pam!monitoring=ca287965-3d33-49ec-a069-1bb80fd2e95d
Teams Bot App ID: bd39de7e
Teams Manifest-ID: b86adea3 (NIE ändern!)
CT-110 SSH: root@192.168.0.61 | Key: Desktop/ct110_key`, 'Zugänge'],
];

const existing = db.prepare('SELECT COUNT(*) as c FROM ai_knowledge').get().c;
if (existing > 0) {
    console.log('Einträge bereits vorhanden:', existing);
    process.exit(0);
}

const stmt = db.prepare('INSERT INTO ai_knowledge (title, content, category) VALUES (?, ?, ?)');
entries.forEach(([t, c, cat]) => stmt.run(t, c, cat));
console.log('Fertig - Einträge eingefügt:', entries.length);
