'Poste de travail', 'icon' => '💻'], ['name' => 'Serveur', 'icon' => '🖧'], ['name' => 'Équipement réseau', 'icon' => '📡'], ['name' => 'Téléphone', 'icon' => '📱'], ['name' => 'NAS', 'icon' => '🗄️'], ['name' => 'Switch', 'icon' => '🔀'], ['name' => 'Wifi', 'icon' => '📶'], ['name' => 'Sauvegarde', 'icon' => '💾'], ['name' => 'Autre', 'icon' => '🔧'], ]; const FIELDS = [ ['label' => 'Nom d\'hôte', 'field_type' => 'text', 'show_in_list' => true], ['label' => 'Adresse IP', 'field_type' => 'text', 'show_in_list' => true], ['label' => 'Adresse MAC', 'field_type' => 'text'], ['label' => 'Numéro de série', 'field_type' => 'text'], ['label' => 'Fabricant', 'field_type' => 'text'], ['label' => 'Modèle', 'field_type' => 'text'], ['label' => 'Système d\'exploitation', 'field_type' => 'text'], ['label' => 'Statut', 'field_type' => 'select', 'options' => ['choices' => ['Actif', 'Inactif', 'Retiré']], 'show_in_list' => true], ['label' => 'Site', 'field_type' => 'related_asset', 'options' => ['target' => 'location']], ['label' => 'Contact', 'field_type' => 'related_asset', 'options' => ['target' => 'contact']], ['label' => 'Date d\'installation', 'field_type' => 'date'], ['label' => 'Fin de garantie', 'field_type' => 'date'], ['label' => 'Notes', 'field_type' => 'textarea'], ]; public function run(): void { foreach (self::TYPES as $typeAttributes) { $type = FlexibleAssetType::firstOrCreate(['name' => $typeAttributes['name']], $typeAttributes); if ($type->fields()->exists()) { continue; } foreach (self::FIELDS as $index => $field) { $type->fields()->create([ 'name' => \Illuminate\Support\Str::snake($field['label']), 'label' => $field['label'], 'field_type' => $field['field_type'], 'options' => $field['options'] ?? null, 'is_required' => false, 'show_in_list' => $field['show_in_list'] ?? false, 'sort_order' => $index, ]); } } } }