forked from Simnation/Main
347 lines
11 KiB
Lua
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%-%(%)]+$'
|
|
}
|