<?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);
        }
    }
}
