diff --git a/app/Http/Controllers/ReminderController.php b/app/Http/Controllers/ReminderController.php index 53fdd25..e281f42 100644 --- a/app/Http/Controllers/ReminderController.php +++ b/app/Http/Controllers/ReminderController.php @@ -6,6 +6,8 @@ use App\Models\Reminder; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; +use App\Enums\ReminderType; +use Illuminate\Validation\Rules\Enum; class ReminderController extends Controller { @@ -27,6 +29,7 @@ public function store(Request $request) 'repeatable' => 'boolean', 'repeat_days' => 'nullable|integer|min:1', 'data' => 'nullable|array', + 'type' => ['required', new Enum(ReminderType::class)], ]); $packageNameData = $request->validate([ 'package_name' => 'required|exists:package_names,name', @@ -61,6 +64,7 @@ public function update(Request $request, Reminder $reminder) 'repeatable' => 'boolean', 'repeat_days' => 'nullable|integer|min:1', 'data' => 'nullable|array', + 'type' => ['sometimes', new Enum(ReminderType::class)], ]); $packageNameData = $request->validate([ 'package_name' => 'required|exists:package_names,name', @@ -116,6 +120,7 @@ public function packageStore(Request $request, PackageName $packageName) 'repeatable' => 'boolean', 'repeat_days' => 'nullable|integer|min:1', 'data' => 'nullable|array', + 'type' => ['required', new Enum(ReminderType::class)], ]); $reminder = Reminder::create([ @@ -149,6 +154,7 @@ public function packageUpdate(Request $request, PackageName $packageName, Remind 'repeatable' => 'boolean', 'repeat_days' => 'nullable|integer|min:1', 'data' => 'nullable|array', + 'type' => ['sometimes', new Enum(ReminderType::class)], ]); // If time is being updated, reset last_repeat to null diff --git a/app/Models/Reminder.php b/app/Models/Reminder.php index 94b6c92..0da34a4 100644 --- a/app/Models/Reminder.php +++ b/app/Models/Reminder.php @@ -13,6 +13,7 @@ class Reminder extends Model protected $casts = [ 'data' => 'array', 'last_repeat' => 'datetime', + 'type' => ReminderType::class, ]; public function packageName() diff --git a/app/ReminderType.php b/app/ReminderType.php new file mode 100644 index 0000000..cf4df98 --- /dev/null +++ b/app/ReminderType.php @@ -0,0 +1,9 @@ +string('type') + ->default(ReminderType::REMINDER->value) + ->after('description'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('reminders', function (Blueprint $table) { + $table->dropColumn('type'); + }); + } +};