Teren-app/app/Http/Controllers/ActivityNotificationController.php
2025-10-13 21:14:10 +02:00

42 lines
1.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Activity;
use App\Models\ActivityNotificationRead;
use Illuminate\Http\Request;
class ActivityNotificationController extends Controller
{
/**
* Handle the incoming request.
*/
public function __invoke(Request $request)
{
$request->validate([
'activity_id' => ['required', 'integer', 'exists:activities,id'],
]);
$userId = optional($request->user())->id;
if (! $userId) {
abort(403);
}
$activity = Activity::query()->select(['id', 'due_date'])->findOrFail($request->integer('activity_id'));
$due = optional($activity->due_date) ? date('Y-m-d', strtotime($activity->due_date)) : now()->toDateString();
ActivityNotificationRead::query()->updateOrCreate(
[
'user_id' => $userId,
'activity_id' => $activity->id,
'due_date' => $due,
],
[
'read_at' => now(),
]
);
return response()->json(['status' => 'ok']);
}
}