feat: add type remiders
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
use App\Models\Reminder;
|
use App\Models\Reminder;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use App\Enums\ReminderType;
|
||||||
|
use Illuminate\Validation\Rules\Enum;
|
||||||
|
|
||||||
class ReminderController extends Controller
|
class ReminderController extends Controller
|
||||||
{
|
{
|
||||||
@@ -27,6 +29,7 @@ public function store(Request $request)
|
|||||||
'repeatable' => 'boolean',
|
'repeatable' => 'boolean',
|
||||||
'repeat_days' => 'nullable|integer|min:1',
|
'repeat_days' => 'nullable|integer|min:1',
|
||||||
'data' => 'nullable|array',
|
'data' => 'nullable|array',
|
||||||
|
'type' => ['required', new Enum(ReminderType::class)],
|
||||||
]);
|
]);
|
||||||
$packageNameData = $request->validate([
|
$packageNameData = $request->validate([
|
||||||
'package_name' => 'required|exists:package_names,name',
|
'package_name' => 'required|exists:package_names,name',
|
||||||
@@ -61,6 +64,7 @@ public function update(Request $request, Reminder $reminder)
|
|||||||
'repeatable' => 'boolean',
|
'repeatable' => 'boolean',
|
||||||
'repeat_days' => 'nullable|integer|min:1',
|
'repeat_days' => 'nullable|integer|min:1',
|
||||||
'data' => 'nullable|array',
|
'data' => 'nullable|array',
|
||||||
|
'type' => ['sometimes', new Enum(ReminderType::class)],
|
||||||
]);
|
]);
|
||||||
$packageNameData = $request->validate([
|
$packageNameData = $request->validate([
|
||||||
'package_name' => 'required|exists:package_names,name',
|
'package_name' => 'required|exists:package_names,name',
|
||||||
@@ -116,6 +120,7 @@ public function packageStore(Request $request, PackageName $packageName)
|
|||||||
'repeatable' => 'boolean',
|
'repeatable' => 'boolean',
|
||||||
'repeat_days' => 'nullable|integer|min:1',
|
'repeat_days' => 'nullable|integer|min:1',
|
||||||
'data' => 'nullable|array',
|
'data' => 'nullable|array',
|
||||||
|
'type' => ['required', new Enum(ReminderType::class)],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$reminder = Reminder::create([
|
$reminder = Reminder::create([
|
||||||
@@ -149,6 +154,7 @@ public function packageUpdate(Request $request, PackageName $packageName, Remind
|
|||||||
'repeatable' => 'boolean',
|
'repeatable' => 'boolean',
|
||||||
'repeat_days' => 'nullable|integer|min:1',
|
'repeat_days' => 'nullable|integer|min:1',
|
||||||
'data' => 'nullable|array',
|
'data' => 'nullable|array',
|
||||||
|
'type' => ['sometimes', new Enum(ReminderType::class)],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// If time is being updated, reset last_repeat to null
|
// If time is being updated, reset last_repeat to null
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ class Reminder extends Model
|
|||||||
protected $casts = [
|
protected $casts = [
|
||||||
'data' => 'array',
|
'data' => 'array',
|
||||||
'last_repeat' => 'datetime',
|
'last_repeat' => 'datetime',
|
||||||
|
'type' => ReminderType::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
public function packageName()
|
public function packageName()
|
||||||
|
|||||||
@@ -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');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user