1
0
Fork 0
forked from Simnation/Main
Main/resources/[tools]/nordi_license/config.lua
2025-08-04 09:24:53 +02:00

347 lines
11 KiB
Lua

Config = {}
-- Debug-Modus
Config.Debug = true
-- Berechtigte Jobs
Config.AuthorizedJobs = {
['police'] = true,
['sheriff'] = true,
['government'] = true,
['doj'] = true,
['ambulance'] = true,
['mechanic'] = true
}
-- Benachrichtigungen
Config.Notifications = {
no_permission = {
message = "Du hast keine Berechtigung dafür!",
type = "error"
},
license_issued = {
message = "Lizenz erfolgreich ausgestellt!",
type = "success"
},
license_revoked = {
message = "Lizenz erfolgreich entzogen!",
type = "success"
}
}
-- Lizenz-Typen (ERWEITERT mit benutzerdefinierten Feldern)
Config.LicenseTypes = {
['id_card'] = {
label = 'Personalausweis',
description = 'Offizieller Personalausweis',
price = 50,
validity_days = nil, -- Unbegrenzt gültig
color = '#2E86AB',
icon = 'fas fa-id-card',
template = 'id_card',
custom_fields = {
{
name = 'birth_date',
label = 'Geburtsdatum',
type = 'date',
required = true,
placeholder = 'TT.MM.JJJJ'
},
{
name = 'birth_place',
label = 'Geburtsort',
type = 'text',
required = true,
placeholder = 'z.B. Los Santos'
},
{
name = 'nationality',
label = 'Staatsangehörigkeit',
type = 'select',
required = true,
options = {
{value = 'usa', label = 'USA'},
{value = 'germany', label = 'Deutschland'},
{value = 'uk', label = 'Vereinigtes Königreich'},
{value = 'france', label = 'Frankreich'},
{value = 'other', label = 'Andere'}
}
},
{
name = 'address',
label = 'Adresse',
type = 'textarea',
required = true,
placeholder = 'Vollständige Adresse'
},
{
name = 'height',
label = 'Größe (cm)',
type = 'number',
required = false,
placeholder = 'z.B. 180'
},
{
name = 'eye_color',
label = 'Augenfarbe',
type = 'select',
required = false,
options = {
{value = 'brown', label = 'Braun'},
{value = 'blue', label = 'Blau'},
{value = 'green', label = 'Grün'},
{value = 'gray', label = 'Grau'},
{value = 'hazel', label = 'Haselnuss'}
}
},
{
name = 'photo_url',
label = 'Foto-URL',
type = 'url',
required = false,
placeholder = 'https://example.com/photo.jpg'
}
}
},
['driver_license'] = {
label = 'Führerschein',
description = 'Führerschein für Kraftfahrzeuge',
price = 150,
validity_days = 1825, -- 5 Jahre
color = '#F18F01',
icon = 'fas fa-car',
template = 'driver_license',
classes = {
['A'] = 'Motorräder',
['B'] = 'PKW',
['C'] = 'LKW',
['D'] = 'Busse'
},
custom_fields = {
{
name = 'birth_date',
label = 'Geburtsdatum',
type = 'date',
required = true,
placeholder = 'TT.MM.JJJJ'
},
{
name = 'address',
label = 'Adresse',
type = 'textarea',
required = true,
placeholder = 'Vollständige Adresse'
},
{
name = 'restrictions',
label = 'Beschränkungen',
type = 'textarea',
required = false,
placeholder = 'z.B. Brille erforderlich'
},
{
name = 'photo_url',
label = 'Foto-URL',
type = 'url',
required = false,
placeholder = 'https://example.com/photo.jpg'
}
}
},
['weapon_license'] = {
label = 'Waffenschein',
description = 'Berechtigung zum Führen von Waffen',
price = 500,
validity_days = 365, -- 1 Jahr
color = '#C73E1D',
icon = 'fas fa-crosshairs',
template = 'weapon_license',
custom_fields = {
{
name = 'birth_date',
label = 'Geburtsdatum',
type = 'date',
required = true,
placeholder = 'TT.MM.JJJJ'
},
{
name = 'weapon_type',
label = 'Waffentyp',
type = 'select',
required = true,
options = {
{value = 'pistol', label = 'Pistole'},
{value = 'rifle', label = 'Gewehr'},
{value = 'shotgun', label = 'Schrotflinte'},
{value = 'all', label = 'Alle Waffentypen'}
}
},
{
name = 'purpose',
label = 'Verwendungszweck',
type = 'select',
required = true,
options = {
{value = 'self_defense', label = 'Selbstverteidigung'},
{value = 'sport', label = 'Sport'},
{value = 'hunting', label = 'Jagd'},
{value = 'collection', label = 'Sammlung'},
{value = 'security', label = 'Sicherheitsdienst'}
}
},
{
name = 'restrictions',
label = 'Beschränkungen',
type = 'textarea',
required = false,
placeholder = 'Besondere Auflagen oder Beschränkungen'
},
{
name = 'photo_url',
label = 'Foto-URL',
type = 'url',
required = false,
placeholder = 'https://example.com/photo.jpg'
}
}
},
['pilot_license'] = {
label = 'Pilotenlizenz',
description = 'Berechtigung zum Führen von Luftfahrzeugen',
price = 1000,
validity_days = 730, -- 2 Jahre
color = '#6A994E',
icon = 'fas fa-plane',
template = 'pilot_license',
classes = {
['PPL'] = 'Private Pilot License',
['CPL'] = 'Commercial Pilot License',
['ATPL'] = 'Airline Transport Pilot License',
['HELI'] = 'Helicopter License'
},
custom_fields = {
{
name = 'birth_date',
label = 'Geburtsdatum',
type = 'date',
required = true,
placeholder = 'TT.MM.JJJJ'
},
{
name = 'medical_cert',
label = 'Medical Certificate',
type = 'text',
required = true,
placeholder = 'z.B. Class 1, Class 2'
},
{
name = 'flight_hours',
label = 'Flugstunden',
type = 'number',
required = true,
placeholder = 'Gesamte Flugstunden'
},
{
name = 'aircraft_types',
label = 'Luftfahrzeugtypen',
type = 'textarea',
required = false,
placeholder = 'Berechtigte Luftfahrzeugtypen'
},
{
name = 'restrictions',
label = 'Beschränkungen',
type = 'textarea',
required = false,
placeholder = 'z.B. nur bei Tageslicht'
},
{
name = 'photo_url',
label = 'Foto-URL',
type = 'url',
required = false,
placeholder = 'https://example.com/photo.jpg'
}
}
},
['business_license'] = {
label = 'Gewerbeschein',
description = 'Berechtigung zur Ausübung eines Gewerbes',
price = 300,
validity_days = 365, -- 1 Jahr
color = '#7209B7',
icon = 'fas fa-briefcase',
template = 'business_license',
custom_fields = {
{
name = 'business_name',
label = 'Firmenname',
type = 'text',
required = true,
placeholder = 'Name des Unternehmens'
},
{
name = 'business_type',
label = 'Gewerbetyp',
type = 'select',
required = true,
options = {
{value = 'retail', label = 'Einzelhandel'},
{value = 'restaurant', label = 'Gastronomie'},
{value = 'service', label = 'Dienstleistung'},
{value = 'manufacturing', label = 'Herstellung'},
{value = 'transport', label = 'Transport'},
{value = 'other', label = 'Sonstiges'}
}
},
{
name = 'business_address',
label = 'Geschäftsadresse',
type = 'textarea',
required = true,
placeholder = 'Vollständige Geschäftsadresse'
},
{
name = 'tax_number',
label = 'Steuernummer',
type = 'text',
required = false,
placeholder = 'z.B. 123/456/78901'
},
{
name = 'employees',
label = 'Anzahl Mitarbeiter',
type = 'number',
required = false,
placeholder = 'Geplante Mitarbeiterzahl'
},
{
name = 'logo_url',
label = 'Firmenlogo-URL',
type = 'url',
required = false,
placeholder = 'https://example.com/logo.jpg'
}
}
}
}
-- UI-Einstellungen
Config.UI = {
position = 'center', -- 'center', 'top-left', 'top-right', 'bottom-left', 'bottom-right'
animation = 'fade', -- 'fade', 'slide', 'zoom'
theme = 'dark', -- 'dark', 'light'
blur_background = true,
max_image_size = 5 * 1024 * 1024, -- 5MB
allowed_image_formats = {'jpg', 'jpeg', 'png', 'gif', 'webp'},
default_avatar = 'https://via.placeholder.com/150x200/cccccc/666666?text=Kein+Foto'
}
-- Validierung
Config.Validation = {
name_min_length = 2,
name_max_length = 50,
url_pattern = '^https?://.+',
date_pattern = '^%d%d%.%d%d%.%d%d%d%d$', -- DD.MM.YYYY
phone_pattern = '^%+?[%d%s%-%(%)]+$'
}