diff --git a/app/Helpers/helpers.php b/app/Helpers/helpers.php new file mode 100644 index 00000000..bcda24e1 --- /dev/null +++ b/app/Helpers/helpers.php @@ -0,0 +1,17 @@ + 'required', 'cycle_number' => 'required|unique:cycles,cycle_number', 'note' => 'nullable', - 'labels' => 'required|array|distinct', 'labels.*.id' => 'required|numeric|exists:labels,id', + 'labels' => ['required','array','distinct',new ValidEnabledLabels()], ]; break; } @@ -40,8 +41,8 @@ class StoreCycleRequest extends FormRequest 'sterilizer_id' => 'required', 'cycle_number' => 'required|unique:cycles,cycle_number', 'note' => 'nullable', - 'labels' => 'required|array|distinct', 'labels.*.id' => 'required|numeric|exists:labels,id', + 'labels' => ['required','array','distinct',new ValidEnabledLabels()], ]; break; diff --git a/app/Listeners/UpdateLabelsCycleNumber.php b/app/Listeners/UpdateLabelsCycleNumber.php index 3fdda914..ac581c96 100644 --- a/app/Listeners/UpdateLabelsCycleNumber.php +++ b/app/Listeners/UpdateLabelsCycleNumber.php @@ -23,8 +23,7 @@ class UpdateLabelsCycleNumber { $cycle = $event->cycle; $cycleNumber = $cycle->cycle_number; -// dd($cycle->labels); - $cycle->labels()->update(['cycle_number' => $cycleNumber]); + $cycle->labels()->update(['cycle_number' => $cycleNumber, 'enabled' => false]); } } diff --git a/app/Rules/ValidEnabledLabels.php b/app/Rules/ValidEnabledLabels.php new file mode 100644 index 00000000..5691b15c --- /dev/null +++ b/app/Rules/ValidEnabledLabels.php @@ -0,0 +1,29 @@ +where('enabled', true) + ->pluck('id') + ->toArray(); + + if(count(array_diff($formattedVal, $validIds)) !== 0) + { + $fail('the :attribute must be enabled.'); + } + } +} diff --git a/composer.json b/composer.json index 53cecb30..39e77d8f 100644 --- a/composer.json +++ b/composer.json @@ -50,7 +50,10 @@ "Packages\\": "packages/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" - } + }, + "files": [ + "app/Helpers/helpers.php" + ] }, "autoload-dev": { "psr-4": { diff --git a/database/migrations/2025_03_13_112407_rename_enable_in_labels.php b/database/migrations/2025_03_13_112407_rename_enable_in_labels.php new file mode 100644 index 00000000..9ecbb012 --- /dev/null +++ b/database/migrations/2025_03_13_112407_rename_enable_in_labels.php @@ -0,0 +1,28 @@ +renameColumn('enable', 'enabled'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('labels', function (Blueprint $table) { + $table->renameColumn('enabled', 'enable'); + }); + } +};