106 خطوط
5.2 KiB
PHP
106 خطوط
5.2 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use Illuminate\Database\Seeder;
|
||
use Illuminate\Support\Facades\DB;
|
||
|
||
class NotificationSeeder extends Seeder
|
||
{
|
||
public function run(): void
|
||
{
|
||
$users = DB::table('users')->pluck('id', 'email');
|
||
$now = now();
|
||
|
||
$notifications = [
|
||
[
|
||
'user_id' => $users['member@pm.com'],
|
||
'type' => 'task_assigned',
|
||
'title' => 'وظیفه جدید به شما تخصیص یافت',
|
||
'body' => 'وظیفه "طراحی و پیادهسازی ماژول حقوق و دستمزد" به شما تخصیص یافت',
|
||
'data' => json_encode(['task_id' => 2, 'project_id' => 1]),
|
||
'is_read' => false,
|
||
'created_at' => $now->copy()->subHours(24),
|
||
'updated_at' => $now->copy()->subHours(24),
|
||
],
|
||
[
|
||
'user_id' => $users['observer@pm.com'],
|
||
'type' => 'task_assigned',
|
||
'title' => 'وظیفه جدید به شما تخصیص یافت',
|
||
'body' => 'وظیفه "طراحی پنل مدیریت فروشگاه" به شما تخصیص یافت',
|
||
'data' => json_encode(['task_id' => 13, 'project_id' => 2]),
|
||
'is_read' => false,
|
||
'created_at' => $now->copy()->subHours(48),
|
||
'updated_at' => $now->copy()->subHours(48),
|
||
],
|
||
[
|
||
'user_id' => $users['member@pm.com'],
|
||
'type' => 'task_overdue',
|
||
'title' => 'مهلت وظیفه به پایان رسیده است',
|
||
'body' => 'مهلت انجام وظیفه "یکپارچهسازی با درگاههای پرداخت" ۵ روز پیش به پایان رسیده است',
|
||
'data' => json_encode(['task_id' => 14, 'project_id' => 2]),
|
||
'is_read' => true,
|
||
'read_at' => $now->copy()->subHours(2),
|
||
'created_at' => $now->copy()->subHours(120),
|
||
'updated_at' => $now->copy()->subHours(2),
|
||
],
|
||
[
|
||
'user_id' => $users['manager@pm.com'],
|
||
'type' => 'task_overdue',
|
||
'title' => 'تسک دارای تأخیر',
|
||
'body' => 'وظیفه "یکپارچهسازی با درگاههای پرداخت" توسط رضا کریمی دارای تأخیر است',
|
||
'data' => json_encode(['task_id' => 14, 'project_id' => 2]),
|
||
'is_read' => false,
|
||
'created_at' => $now->copy()->subHours(120),
|
||
'updated_at' => $now->copy()->subHours(120),
|
||
],
|
||
[
|
||
'user_id' => $users['member@pm.com'],
|
||
'type' => 'meeting_created',
|
||
'title' => 'جلسه جدید برنامهریزی شد',
|
||
'body' => 'جلسه "برنامهریزی اسپرینت ۲" در تاریخ ۲۰ بهمن برگزار میشود',
|
||
'data' => json_encode(['meeting_id' => 1, 'project_id' => 1]),
|
||
'is_read' => false,
|
||
'created_at' => $now->copy()->subHours(72),
|
||
'updated_at' => $now->copy()->subHours(72),
|
||
],
|
||
[
|
||
'user_id' => $users['observer@pm.com'],
|
||
'type' => 'meeting_created',
|
||
'title' => 'جلسه جدید برنامهریزی شد',
|
||
'body' => 'جلسه "بررسی ماژول حقوق و دستمزد" در تاریخ ۳۰ اسفند برگزار میشود',
|
||
'data' => json_encode(['meeting_id' => 2, 'project_id' => 1]),
|
||
'is_read' => true,
|
||
'read_at' => $now->copy()->subHours(48),
|
||
'created_at' => $now->copy()->subHours(96),
|
||
'updated_at' => $now->copy()->subHours(48),
|
||
],
|
||
[
|
||
'user_id' => $users['member@pm.com'],
|
||
'type' => 'mention',
|
||
'title' => 'شما در یک نظر منشن شدید',
|
||
'body' => 'سارا احمدی در نظری شما را منشن کرده است: "رضا جان لطفاً مستندات API رو هم به این تسک اضافه کنید"',
|
||
'data' => json_encode(['task_id' => 1, 'comment_id' => 1]),
|
||
'is_read' => true,
|
||
'read_at' => $now->copy()->subHours(180),
|
||
'created_at' => $now->copy()->subHours(200),
|
||
'updated_at' => $now->copy()->subHours(180),
|
||
],
|
||
[
|
||
'user_id' => $users['manager@pm.com'],
|
||
'type' => 'mention',
|
||
'title' => 'شما در یک نظر منشن شدید',
|
||
'body' => 'دکتر امیر رضایی در بکلاگ اشاره کرده است: "نیاز به داشبورد اختصاصی برای مدیران داریم"',
|
||
'data' => json_encode(['backlog_id' => 3]),
|
||
'is_read' => false,
|
||
'created_at' => $now->copy()->subHours(24),
|
||
'updated_at' => $now->copy()->subHours(24),
|
||
],
|
||
];
|
||
|
||
foreach ($notifications as $notification) {
|
||
DB::table('notifications')->insert($notification);
|
||
}
|
||
}
|
||
}
|