machine_number)) { // Generiere machine_number basierend auf dem Namen oder einem Pattern $machineNumber = $this->generateMachineNumber($machine); $machine->machine_number = $machineNumber; $machine->save(); echo "Updated {$machine->name} with machine_number: {$machineNumber}\n"; } } } private function generateMachineNumber(VendingMachine $machine): string { // Spezielle Mappings für bessere machine_numbers $name = strtolower($machine->name); if (str_contains($name, 'bürogebäude') || str_contains($name, 'burogebaude')) { $baseNumber = 'automat-burogebaude-a'; } elseif (str_contains($name, 'snack')) { $baseNumber = 'snackost'; } else { // Generiere aus dem Namen $baseNumber = str_replace([' ', 'ä', 'ö', 'ü', 'ß'], ['-', 'ae', 'oe', 'ue', 'ss'], $name); $baseNumber = preg_replace('/[^a-z0-9-]/', '', $baseNumber); $baseNumber = trim($baseNumber, '-'); } // Stelle sicher, dass machine_number eindeutig pro Mandant ist $counter = 1; $machineNumber = $baseNumber; while (VendingMachine::where('tenant_id', $machine->tenant_id) ->where('machine_number', $machineNumber) ->where('id', '!=', $machine->id) ->exists()) { $machineNumber = $baseNumber . '-' . $counter; $counter++; } return $machineNumber; } }