CRM/backend/app/Notifications/TaskAssignedNotification.php

34 خطوط
1.1 KiB
PHP

<?php
namespace App\Notifications;
use App\Models\Notification;
use App\Models\Task;
use App\Models\User;
final class TaskAssignedNotification
{
public static function send(Task $task, User $actor, bool $reassigned = false): void
{
if (! $task->assigned_to || $task->assigned_to === $actor->id) {
return;
}
Notification::firstOrCreate(
['idempotency_key' => "task:{$task->id}:assignment:{$task->version}:{$task->assigned_to}"],
[
'user_id' => $task->assigned_to,
'title' => $reassigned ? 'کار جدید به شما واگذار شد' : 'کار جدید برای شما ثبت شد',
'message' => $task->subject,
'type' => $reassigned ? 'task_reassigned' : 'task_assigned',
'data' => [
'task_id' => $task->id,
'url' => "/tasks?task={$task->id}",
'actor' => ['id' => $actor->id, 'name' => $actor->name],
],
'is_read' => false,
]
);
}
}