diff --git a/app/Http/Controllers/Admin/AiSettingController.php b/app/Http/Controllers/Admin/AiSettingController.php index 561a905..322eb35 100644 --- a/app/Http/Controllers/Admin/AiSettingController.php +++ b/app/Http/Controllers/Admin/AiSettingController.php @@ -10,8 +10,9 @@ class AiSettingController extends Controller { public function show() { - $ai = AiSetting::get(); - return view('admin.ai.show', compact('ai')); + $ai = AiSetting::get(); + $defaultPrompt = AiSetting::DEFAULT_PROMPT; + return view('admin.ai.show', compact('ai', 'defaultPrompt')); } public function update(Request $request) diff --git a/app/Http/Controllers/NailPolishImportController.php b/app/Http/Controllers/NailPolishImportController.php index de2b4c1..fce76d5 100644 --- a/app/Http/Controllers/NailPolishImportController.php +++ b/app/Http/Controllers/NailPolishImportController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers; use App\Jobs\ProcessNailPolishImage; +use App\Models\NailPolish; use App\Models\NailPolishImport; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; @@ -63,9 +64,25 @@ class NailPolishImportController extends Controller public function show(NailPolishImport $nailPolishImport) { - // Nur eigene Imports ansehen abort_if($nailPolishImport->user_id !== auth()->id(), 403); return view('nail-polish-imports.show', ['import' => $nailPolishImport->load('nailPolish.manufacturer')]); } + + public function rescan(NailPolish $nailPolish) + { + abort_unless($nailPolish->image_path, 404); + + $import = NailPolishImport::create([ + 'user_id' => auth()->id(), + 'image_path' => $nailPolish->image_path, + 'status' => 'pending', + 'nail_polish_id' => $nailPolish->id, + ]); + + ProcessNailPolishImage::dispatch($import->id); + + return redirect()->route('nail-polish-imports.show', $import) + ->with('success', 'KI-Analyse gestartet. Die Daten werden aktualisiert.'); + } } diff --git a/app/Jobs/ProcessNailPolishImage.php b/app/Jobs/ProcessNailPolishImage.php index 864e724..d6935b9 100644 --- a/app/Jobs/ProcessNailPolishImage.php +++ b/app/Jobs/ProcessNailPolishImage.php @@ -61,22 +61,32 @@ class ProcessNailPolishImage implements ShouldQueue ); } - // Nagellack-Nummer eindeutig machen falls nötig - $number = $data['number'] ?? ('import-' . $this->importId); - if (NailPolish::where('number', $number)->exists()) { - $number .= '-' . $this->importId; + // Rescan: bestehenden Lack updaten + if ($import->nail_polish_id) { + $nailPolish = NailPolish::findOrFail($import->nail_polish_id); + $nailPolish->update([ + 'name' => $data['name'] ?? $nailPolish->name, + 'number' => $data['number'] ?? $nailPolish->number, + 'manufacturer_id' => $manufacturer?->id ?? $nailPolish->manufacturer_id, + ]); + } else { + // Neuen Lack anlegen + $number = $data['number'] ?? ('import-' . $this->importId); + if (NailPolish::where('number', $number)->exists()) { + $number .= '-' . $this->importId; + } + + $nailPolish = NailPolish::create([ + 'name' => $data['name'] ?? 'Unbekannt', + 'number' => $number, + 'manufacturer_id' => $manufacturer?->id, + 'image_path' => $import->image_path, + ]); + + // Zur Sammlung des Users hinzufügen + $import->user->nailPolishes()->syncWithoutDetaching([$nailPolish->id]); } - $nailPolish = NailPolish::create([ - 'name' => $data['name'] ?? 'Unbekannt', - 'number' => $number, - 'manufacturer_id' => $manufacturer?->id, - 'image_path' => $import->image_path, - ]); - - // Zur Sammlung des Users hinzufügen - $import->user->nailPolishes()->syncWithoutDetaching([$nailPolish->id]); - $import->update([ 'status' => 'done', 'result' => $data, diff --git a/resources/views/admin/ai/show.blade.php b/resources/views/admin/ai/show.blade.php index 718d78a..5dfd58a 100644 --- a/resources/views/admin/ai/show.blade.php +++ b/resources/views/admin/ai/show.blade.php @@ -93,8 +93,9 @@ @section('scripts') @endsection diff --git a/resources/views/user-nail-polishes/index.blade.php b/resources/views/user-nail-polishes/index.blade.php index 56fd70a..882f0d8 100755 --- a/resources/views/user-nail-polishes/index.blade.php +++ b/resources/views/user-nail-polishes/index.blade.php @@ -65,7 +65,15 @@ {{ $nailPolish->manufacturer->name }} @endif -