aether-framework/resources/[aether]/aether-police/shared/config.lua
Jerrit Fritzsche e4b82dd685 Aether-Framework: Fachmodule, Admin-Panel und Docker-Datenbank
- aether-medical: Stationen/Belegung, Intensivstation, Blutbank, Fuhrpark,
  Nachrichten/Aushänge, Berichte und Textbausteine (server + NUI)
- aether-admin: vollständiges Server-Admin-Panel als echtes FiveM-Resource,
  an aether-core gekoppelt (Rechte über aether_users.admin_group), mit
  WebRTC-Live-Kameras (Bildschirmfreigabe) und separatem Media-Server (SFU)
- Prototypen admin/ vervollständigt
- SQL-Schema aether_admin.sql
- Docker-Compose mit MariaDB und idempotenter Auto-Migration (schema_migrations)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-27 18:55:32 +02:00

128 lines
5.1 KiB
Lua

-- =====================================================================
-- aether-police — Grundkonfiguration
--
-- GRUNDPRINZIP: Das System unterstützt Entscheidungen — es trifft
-- niemals selbst welche. Alle Zeitangaben hier dienen ausschliesslich
-- der ERINNERUNG. Nichts davon löst eine Maßnahme aus.
-- =====================================================================
Polizei = Polizei or {}
Polizei.Config = {}
-- Anzeigename der Behörde
Polizei.Config.Behoerde = 'Los Santos Police Department'
Polizei.Config.Kuerzel = 'LSPD'
-- Reichweite zu Terminals (Meter)
Polizei.Config.TerminalWeite = 2.5
-- Terminals an den Wachen. Dort lässt sich das Tablet aufrufen.
Polizei.Config.Terminals = {
{ name = 'Mission Row', pos = vector3(441.0, -982.1, 30.7) },
{ name = 'Sandy Shores', pos = vector3(1853.1, 3689.5, 34.3) },
{ name = 'Paleto Bay', pos = vector3(-448.6, 6012.4, 31.7) },
}
-- Abteilungen (frei erweiterbar)
Polizei.Config.Abteilungen = {
{ id = 'streife', name = 'Streifendienst' },
{ id = 'kripo', name = 'Kriminalpolizei' },
{ id = 'verkehr', name = 'Verkehrspolizei' },
{ id = 'sek', name = 'Spezialeinsatzkommando' },
{ id = 'leitstelle', name = 'Leitstelle' },
}
-- Dienststatus, die ein Beamter wählen kann
Polizei.Config.Dienststatus = {
{ id = 'verfuegbar', name = 'Verfügbar', farbe = '#34d39a' },
{ id = 'einsatz', name = 'Im Einsatz', farbe = '#f5a742' },
{ id = 'pause', name = 'Pause', farbe = '#7c8797' },
{ id = 'nicht', name = 'Nicht verfügbar', farbe = '#f0506e' },
}
-- Einsatzkategorien
Polizei.Config.Einsatzkategorien = {
{ id = 'notruf', name = 'Notruf', farbe = '#f0506e' },
{ id = 'verkehr', name = 'Verkehr', farbe = '#f5a742' },
{ id = 'gewalt', name = 'Gewaltdelikt', farbe = '#e0503f' },
{ id = 'eigentum', name = 'Eigentumsdelikt', farbe = '#7c5cf6' },
{ id = 'unterstuetzung', name = 'Unterstützung', farbe = '#4aa8ff' },
{ id = 'panik', name = 'Notfall Beamter', farbe = '#ff2e57' },
{ id = 'sonstiges', name = 'Sonstiges', farbe = '#8a93a5' },
}
-- Aktenarten
Polizei.Config.Aktenarten = {
{ id = 'straf', name = 'Strafakte' },
{ id = 'ermittlung', name = 'Ermittlungsakte' },
{ id = 'einsatz', name = 'Einsatzakte' },
{ id = 'unfall', name = 'Unfallakte' },
{ id = 'vernehmung', name = 'Vernehmung' },
{ id = 'beschluss', name = 'Beschluss' },
}
-- Beweisarten
Polizei.Config.Beweisarten = {
{ id = 'foto', name = 'Foto' },
{ id = 'video', name = 'Video' },
{ id = 'fingerabdruck', name = 'Fingerabdruck' },
{ id = 'dna', name = 'DNA-Spur' },
{ id = 'huelse', name = 'Patronenhülse' },
{ id = 'dokument', name = 'Dokument' },
{ id = 'aussage', name = 'Aussage' },
{ id = 'gegenstand', name = 'Beweisstück' },
}
-- Asservat-Kategorien
Polizei.Config.Asservatkategorien = {
{ id = 'waffe', name = 'Waffe' },
{ id = 'drogen', name = 'Betäubungsmittel' },
{ id = 'bargeld', name = 'Bargeld' },
{ id = 'schmuck', name = 'Schmuck' },
{ id = 'datentraeger', name = 'Datenträger' },
{ id = 'dokument', name = 'Dokument' },
{ id = 'sonstiges', name = 'Sonstiges' },
}
-- ---------------------------------------------------------------------
-- Gewahrsam
--
-- WICHTIG: Es gibt keinen Automatismus. Das System führt die Frist mit
-- und erinnert — eingewiesen und entlassen wird ausschliesslich durch
-- einen Beamten.
-- ---------------------------------------------------------------------
Polizei.Config.Gewahrsam = {
-- Wird die Person beim Einweisen in die Zelle verbracht?
-- false = rein verwaltend; das Verbringen geschieht dann im Rollenspiel.
verbringen = true,
-- Verfügbare Zellen
zellen = {
{ id = 'A1', name = 'Zelle A1', pos = vector4(461.6, -994.4, 24.9, 90.0) },
{ id = 'A2', name = 'Zelle A2', pos = vector4(461.6, -997.7, 24.9, 90.0) },
{ id = 'A3', name = 'Zelle A3', pos = vector4(461.6, -1001.1, 24.9, 90.0) },
{ id = 'B1', name = 'Zelle B1', pos = vector4(464.5, -992.7, 24.9, 270.0) },
{ id = 'B2', name = 'Zelle B2', pos = vector4(464.5, -996.1, 24.9, 270.0) },
},
-- Wohin die Person nach der Entlassung gesetzt wird
entlassung = vector4(441.0, -978.9, 30.7, 180.0),
-- Hoechstdauer, die ein Beamter eintragen kann (Minuten)
maxDauer = 720,
}
-- ---------------------------------------------------------------------
-- Erinnerungen (NUR Hinweise — keine davon führt etwas aus)
-- ---------------------------------------------------------------------
Polizei.Config.Erinnerungen = {
-- Bei welchen Restzeiten im Gewahrsam erinnert wird (Minuten)
gewahrsamStufen = { 15, 5, 0 },
-- Wie oft die Fristen geprüft werden (Millisekunden)
pruefIntervall = 60000,
-- Nach wie vielen Minuten ein Bericht als „offen" gemeldet wird
berichtOffenNach = 30,
-- Wie viele Minuten vor Ablauf an eine offene Kenntnisnahme erinnert wird
aushangVorwarnung = 60,
}