Files
alrahma_sunday_school_api/app/Services/Notifications/NotificationManagementService.php
T
2026-06-09 00:03:03 -04:00

48 lines
1.7 KiB
PHP

<?php
namespace App\Services\Notifications;
use App\Models\Notification;
class NotificationManagementService
{
public function update(int $notificationId, array $payload): array
{
$notification = Notification::query()->find($notificationId);
if (! $notification) {
return ['ok' => false, 'message' => 'Notification not found.'];
}
$notification->update([
'title' => $payload['title'] ?? $notification->title,
'message' => $payload['message'] ?? $notification->message,
'target_group' => $payload['target_group'] ?? $notification->target_group,
'delivery_channels' => $payload['channels'] ?? $notification->delivery_channels,
'priority' => $payload['priority'] ?? $notification->priority,
'status' => $payload['status'] ?? $notification->status,
'action_url' => $payload['action_url'] ?? $notification->action_url,
'attachment_path' => $payload['attachment_path'] ?? $notification->attachment_path,
'scheduled_at' => $payload['scheduled_at'] ?? $notification->scheduled_at,
'expires_at' => $payload['expires_at'] ?? $notification->expires_at,
'updated_at' => utc_now(),
]);
return ['ok' => true, 'notification' => $notification];
}
public function delete(int $notificationId): bool
{
$notification = Notification::query()->find($notificationId);
if (! $notification) {
return false;
}
return (bool) $notification->delete();
}
public function restore(int $notificationId): bool
{
return Notification::restoreNotification($notificationId);
}
}