# Config

### 1. LUA Config

```lua
Config = {}

-- =============================================
-- JOBS & BERECHTIGUNGEN
-- =============================================

-- Erlaubte Jobs für Nitapad Zugriff
Config.AllowedJobs = {
    ['ambulance'] = true,
    ['krankenhaus'] = true,
    ['fire'] = true,
    ['police'] = true
}

-- Jobs die Triage-Funktionen nutzen können
Config.TriageJobs = {
    ['ambulance'] = true,
    ['krankenhaus'] = true,
    ['fire'] = true,
    ['police'] = true
}

-- Jobs die Fahrzeug-Status sehen können
Config.VehicleStatusJobs = {
    ['ambulance'] = true,
    ['krankenhaus'] = true,
    ['fire'] = true,
    ['police'] = true
}

-- =============================================
-- FRAMEWORK & ABRECHNUNG
-- =============================================

-- Framework Einstellungen
Config.Framework = {
    autoDetect = true, -- Automatische Framework-Erkennung
    framework = 'auto', -- 'auto', 'esx', 'qb-core'
    debug = false -- Framework-Debug-Modus
}

-- Globale Abrechnungs-Einstellungen
Config.Billing = {
    enabled = true, -- Gesamte Abrechnung ein-/ausschalten (benötigt wavecore_krankenversicherung)
    resource = 'wavecore_krankenversicherung', -- Name der Abrechnungs-Resource
    failIfResourceMissing = true -- Bei fehlender Resource Fehler zurückgeben
}

-- Firmenrechnungs-Einstellungen
Config.CompanyBilling = {
    enabled = true, -- Firmenrechnungen aktiviert/deaktiviert
    autoDetect = true, -- Automatische Erkennung von Company-Jobs
    useCompanyBilling = true, -- Company-Billing für erkannte Jobs verwenden
    fallbackToNormal = true, -- Fallback zu normaler Abrechnung wenn Company-Billing fehlschlägt
    debug = false -- Company-Billing Debug-Modus
}

-- Company Jobs für Abrechnung (keine Kosten für Patient)
Config.CompanyJobs = {
    ['police'] = 'Polizei',
    ['ambulance'] = 'Rettungsdienst',
    ['fire'] = 'Feuerwehr',
    ['krankenhaus'] = 'Krankenhaus',
    ['mechanic'] = 'Mechaniker'
}

-- =============================================
-- DISCORD WEBHOOKS
-- =============================================

-- Discord Webhook für Einsatzdokumentation
Config.DiscordWebhook = "HERE WEBHOOK"

-- Discord Webhook Einstellungen
Config.Discord = {
    enabled = true,
    maxTextLength = 1024, -- Maximale Textlänge für Discord Embeds
    color = 0xFF0000, -- Farbe für Embeds (Rot)
    footer = "Nitapad System"
}

-- =============================================
-- DATENBANK & ITEMS
-- =============================================

-- Item Name für ox_inventory
Config.ItemName = 'nitapad'

-- Datenbank Tabelle
Config.DatabaseTable = 'nitapad_einsaetze'

-- =============================================
-- UI & DESIGN
-- =============================================

-- UI Einstellungen
Config.UI = {
    title = 'Nitapad - Rettungsdienst',
    version = 'v1.0.0',
    theme = 'dark', -- 'dark' oder 'light'
    language = 'de' -- 'de' oder 'en'
}

-- Passbild Einstellungen
Config.Passbild = {
    enabled = true -- Passbilder aus der users-Tabelle verwenden
}

-- =============================================
-- LOCALE & SPRACHEN
-- =============================================

-- Locale Einstellungen
Config.Locale = {
    default = 'de', -- Standard-Sprache
    fallback = 'de', -- Fallback-Sprache
    available = {'de', 'en'}, -- Verfügbare Sprachen
    autoDetect = true, -- Automatische Spracherkennung
    debug = false -- Locale-Debug-Modus
}

-- =============================================
-- KOORDINATEN & PUNKTE
-- =============================================

-- Krankenhaus Terminal Koordinaten
Config.HospitalTerminal = {
    enabled = false, -- Terminal-Modus deaktiviert
    coords = vector3(307.7, -1433.5, 29.9),
    heading = 50.0,
    size = vector3(1.0, 1.0, 1.0),
    rotation = vector3(0.0, 0.0, 0.0),
    distance = 2.0
}

-- =============================================
-- SPIELMECHANIKEN
-- =============================================

-- Entfernungs-Einstellungen
Config.Distance = {
    nearbyPlayers = 10.0, -- Meter für "Personen in der Nähe"
    vehicleCheck = 5.0, -- Meter für Fahrzeug-Validierung
    terminalAccess = 2.0 -- Meter für Terminal-Zugriff
}

-- Triage Einstellungen
Config.Triage = {
    autoResetTime = 300, -- Sekunden bis Auto-Reset (5 Minuten)
    maxCategories = 4, -- Maximale Triage-Kategorien
    categories = {
        'SK1 - Kritisch',
        'SK2 - Schwer',
        'SK3 - Leicht',
        'SK4 - Tote'
    }
}

-- Behandlungstypen
Config.TreatmentTypes = {
    ['kleine_behandlung'] = 'Kleine Behandlung',
    ['mittlere_behandlung'] = 'Mittlere Behandlung',
    ['grosse_behandlung'] = 'Große Behandlung',
    ['na_einsatz'] = 'NA-Einsatz',
    ['helikopter_einsatz'] = 'Helikopter-Einsatz',
    ['ambulante_behandlung'] = 'Ambulante Behandlung',
    ['stationaere_behandlung'] = 'Stationäre Behandlung',
    ['notfallbehandlung'] = 'Notfallbehandlung'
}

-- =============================================
-- VITALWERTE
-- =============================================

-- Vitalwerte Konfiguration
Config.Vitalwerte = {
    enabled = true,
    fields = {
        'puls', -- Puls
        'blutdruck', -- Blutdruck
        'af', -- Atemfrequenz
        'spo2', -- Sauerstoffsättigung
        'bz' -- Blutzucker
    },
    required = false -- Sind Vitalwerte Pflichtfelder?
}

-- =============================================
-- LAGEBERICHTE
-- =============================================

-- Lagebericht Einstellungen
Config.Lageberichte = {
    enabled = true,
    maxPerEinsatz = 10, -- Maximale Anzahl pro Einsatz
    timestampFormat = '%d.%m.%Y %H:%M:%S', -- Zeitstempel Format
    required = false -- Sind Lageberichte Pflicht?
}

-- =============================================
-- BEHANDLUNGSVERLAUF
-- =============================================

-- Behandlungsverlauf Einstellungen
Config.TreatmentHistory = {
    enabled = true,
    maxEntries = 20, -- Maximale Einträge pro Patient
    exportName = 'wavecore_krankenversicherung', -- Export Name
    exportFunction = 'GetTreatmentHistory' -- Export Funktion
}

-- =============================================
-- DEBUG & ENTWICKLUNG
-- =============================================

-- Debug Einstellungen
Config.Debug = {
    enabled = false, -- Debug-Modus
    verbose = false, -- Ausführliche Logs
    printDistance = false, -- Entfernungs-Berechnungen loggen
    printWebhooks = false -- Webhook-Requests loggen
}

-- =============================================
-- NOTIFICATIONEN
-- =============================================

-- Notification Trigger (ESX ShowNotification)
Config.Notify = {
    success = 'esx:showNotification', -- Erfolg
    error = 'esx:showNotification', -- Fehler
    info = 'esx:showNotification', -- Info
    warning = 'esx:showNotification' -- Warnung
}

-- =============================================
-- EXPORTS & ABHÄNGIGKEITEN
-- =============================================

-- Externe Exports
Config.Exports = {
    emergencyDispatch = 'emergencydispatch', -- EmergencyDispatch Resource
    krankenversicherung = 'wavecore_krankenversicherung', -- Krankenversicherung Resource
    oxTarget = 'ox_target' -- ox_target Resource
}

-- =============================================
-- SICHERHEIT
-- =============================================

-- Sicherheits-Einstellungen
Config.Security = {
    maxPatientsPerEinsatz = 10, -- Maximale Patienten pro Einsatz
    maxLageberichtePerEinsatz = 20, -- Maximale Lageberichte pro Einsatz
    webhookTimeout = 10000, -- Webhook Timeout in ms
    rateLimitPerMinute = 60 -- Rate Limit pro Minute
}

```

### 2. JS Config

```javascript
// Nitapad Frontend Konfiguration
// Diese Datei wird automatisch vom Server geladen

window.NitapadConfig = {
    // Erlaubte Jobs
    allowedJobs: ['ambulance', 'krankenhaus', 'fire', 'police'],
    
    // UI Einstellungen
    ui: {
        title: 'Nitapad - Rettungsdienst',
        version: 'v1.0.0',
        theme: 'dark',
        language: 'de'
    },
    
    // Behandlungstypen
    treatmentTypes: {
        'kleine_behandlung': 'Kleine Behandlung',
        'mittlere_behandlung': 'Mittlere Behandlung',
        'grosse_behandlung': 'Große Behandlung',
        'na_einsatz': 'NA-Einsatz',
        'helikopter_einsatz': 'Helikopter-Einsatz',
        'ambulante_behandlung': 'Ambulante Behandlung',
        'stationaere_behandlung': 'Stationäre Behandlung',
        'notfallbehandlung': 'Notfallbehandlung'
    },
    
    // Vitalwerte
    vitalwerte: {
        enabled: true,
        fields: ['puls', 'blutdruck', 'af', 'spo2', 'bz'],
        required: false
    },
    
    // Lageberichte
    lageberichte: {
        enabled: true,
        maxPerEinsatz: 10,
        timestampFormat: 'DD.MM.YYYY HH:mm:ss',
        required: false
    },
    
    // Behandlungsverlauf
    treatmentHistory: {
        enabled: true,
        maxEntries: 20
    },
    
    // Entfernungen
    distance: {
        nearbyPlayers: 10.0,
        vehicleCheck: 5.0,
        terminalAccess: 2.0
    },
    
    // Triage
    triage: {
        autoResetTime: 300,
        maxCategories: 4,
        categories: [
            'SK1 - Kritisch',
            'SK2 - Schwer', 
            'SK3 - Leicht',
            'SK4 - Tote'
        ]
    },
    
    // Debug
    debug: {
        enabled: false,
        verbose: false
    },
    // Abrechnung
    billing: {
        enabled: true
    },
    // Passbild Anzeige
    passbild: {
        enabled: true
    }
};

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wavecore.dev/wavecore/nitapad/config.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
