feat: add type remiders

This commit is contained in:
2025-12-18 18:16:23 +03:30
parent fd3caed934
commit bf0cb80bd0
4 changed files with 47 additions and 0 deletions
@@ -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
+1
View File
@@ -13,6 +13,7 @@ class Reminder extends Model
protected $casts = [
'data' => 'array',
'last_repeat' => 'datetime',
'type' => ReminderType::class,
];
public function packageName()
+9
View File
@@ -0,0 +1,9 @@
<?php
namespace App;
enum ReminderType : string
{
case REMINDER = 'reminder';
case MOTIVATE = 'motivate';
}
@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use App\ReminderType;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('reminders', function (Blueprint $table) {
$table
->string('type')
->default(ReminderType::REMINDER->value)
->after('description');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('reminders', function (Blueprint $table) {
$table->dropColumn('type');
});
}
};