LMIV-SNACKAUTOMAT/database/seeders/SettingsSeeder.php

94 lines
3.4 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\Setting;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
class SettingsSeeder extends Seeder
{
/**
* Run the database seeder.
*/
public function run(): void
{
$settings = [
// Bestandsverwaltung
[
'key' => 'inventory_enabled',
'value' => '1',
'type' => 'boolean',
'group' => 'inventory',
'label' => 'Bestandsverwaltung aktivieren',
'description' => 'Aktiviert die Verwaltung von Produktmengen in den Slots. Wenn deaktiviert, werden nur Produktinformationen ohne Bestandsangaben angezeigt.'
],
[
'key' => 'low_stock_threshold',
'value' => '5',
'type' => 'integer',
'group' => 'inventory',
'label' => 'Warnschwelle für niedrigen Bestand',
'description' => 'Anzahl der Produkte, ab der ein Slot als "niedrig" markiert wird.'
],
[
'key' => 'show_stock_in_public',
'value' => '1',
'type' => 'boolean',
'group' => 'display',
'label' => 'Bestand öffentlich anzeigen',
'description' => 'Zeigt die verfügbare Anzahl von Produkten in der öffentlichen Ansicht an.'
],
[
'key' => 'show_out_of_stock',
'value' => '1',
'type' => 'boolean',
'group' => 'display',
'label' => 'Ausverkaufte Produkte anzeigen',
'description' => 'Zeigt Produkte auch dann an, wenn sie nicht mehr verfügbar sind (mit entsprechender Kennzeichnung).'
],
// Allgemeine Einstellungen
[
'key' => 'site_name',
'value' => 'LMIV Snackautomat',
'type' => 'string',
'group' => 'general',
'label' => 'Website-Name',
'description' => 'Name der Website, der im Titel und in der Navigation angezeigt wird.'
],
[
'key' => 'contact_email',
'value' => 'admin@snackautomat.local',
'type' => 'string',
'group' => 'general',
'label' => 'Kontakt E-Mail',
'description' => 'E-Mail-Adresse für Supportanfragen und Kontaktformular.'
],
// LMIV-Einstellungen
[
'key' => 'show_allergens_warning',
'value' => '1',
'type' => 'boolean',
'group' => 'lmiv',
'label' => 'Allergen-Warnung anzeigen',
'description' => 'Zeigt einen deutlichen Hinweis auf Allergene in der Produktansicht.'
],
[
'key' => 'require_nutrition_info',
'value' => '0',
'type' => 'boolean',
'group' => 'lmiv',
'label' => 'Nährwertangaben verpflichtend',
'description' => 'Macht die Eingabe von Nährwertangaben bei Produkten zur Pflicht.'
]
];
foreach ($settings as $setting) {
Setting::updateOrCreate(
['key' => $setting['key']],
$setting
);
}
}
}