<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;

class ProjectSeeder extends Seeder
{
    public function run(): void
    {
        $users = DB::table('users')->pluck('id', 'email');
        $now = now();

        $projects = [
            [
                'title' => 'سامانه مدیریت منابع انسانی',
                'description' => 'طراحی و پیاده‌سازی سامانه جامع مدیریت منابع انسانی شامل ماژول‌های حضور و غیاب، حقوق و دستمزد، ارزیابی عملکرد و مدیریت پرسنل',
                'client' => 'شرکت صنعتی پارس',
                'project_manager_id' => $users['manager@pm.com'],
                'start_date' => '2026-01-05',
                'end_date' => '2026-07-15',
                'priority' => 'high',
                'status' => 'in_progress',
                'progress' => 65,
                'risk_level' => 'medium',
                'budget' => 850000000.00,
                'estimated_hours' => 2400.00,
                'actual_hours' => 1560.00,
                'tags' => json_encode(['HR', 'web', 'dashboard']),
                'notes' => 'پیشرفت مطابق برنامه زمانبندی می‌باشد',
                'is_archived' => false,
                'created_by' => $users['admin@pm.com'],
                'created_at' => $now,
                'updated_at' => $now,
            ],
            [
                'title' => 'اپلیکیشن موبایل فروشگاهی',
                'description' => 'توسعه اپلیکیشن موبایل فروشگاهی چندمنظوره با قابلیت‌های پرداخت آنلاین، مدیریت سفارشات، اعلان‌ها و پنل مدیریت پیشرفته',
                'client' => 'فروشگاه زنجیره‌ای البرز',
                'project_manager_id' => $users['manager@pm.com'],
                'start_date' => '2026-02-15',
                'end_date' => '2026-09-30',
                'priority' => 'urgent',
                'status' => 'in_progress',
                'progress' => 30,
                'risk_level' => 'high',
                'budget' => 1200000000.00,
                'estimated_hours' => 3200.00,
                'actual_hours' => 960.00,
                'tags' => json_encode(['mobile', 'android', 'ios', 'ecommerce']),
                'notes' => 'تأخیر در تحویل ماژول پرداخت از سمت تیم فینتک',
                'is_archived' => false,
                'created_by' => $users['admin@pm.com'],
                'created_at' => $now,
                'updated_at' => $now,
            ],
            [
                'title' => 'بازطراحی وبسایت شرکتی',
                'description' => 'بازطراحی کامل وبسایت شرکتی با رویکرد مدرن، واکنش‌گرا و سئو محور شامل بخش‌های معرفی، محصولات، وبلاگ و تماس با ما',
                'client' => 'شرکت خدمات بیمه ایران',
                'project_manager_id' => $users['manager@pm.com'],
                'start_date' => '2026-05-01',
                'end_date' => '2026-08-15',
                'priority' => 'medium',
                'status' => 'planning',
                'progress' => 10,
                'risk_level' => 'low',
                'budget' => 450000000.00,
                'estimated_hours' => 1200.00,
                'actual_hours' => 120.00,
                'tags' => json_encode(['website', 'redesign', 'ui-ux', 'seo']),
                'notes' => 'در مرحله جمع‌آوری نیازمندی‌ها',
                'is_archived' => false,
                'created_by' => $users['admin@pm.com'],
                'created_at' => $now,
                'updated_at' => $now,
            ],
        ];

        foreach ($projects as $project) {
            DB::table('projects')->insert($project);
        }

        $projectIds = DB::table('projects')->pluck('id');
        $project1Id = $projectIds[0];
        $project2Id = $projectIds[1];
        $project3Id = $projectIds[2];

        $projectMembers = [
            ['project_id' => $project1Id, 'user_id' => $users['manager@pm.com'], 'role_in_project' => 'مدیر پروژه'],
            ['project_id' => $project1Id, 'user_id' => $users['member@pm.com'], 'role_in_project' => 'توسعه‌دهنده'],
            ['project_id' => $project1Id, 'user_id' => $users['observer@pm.com'], 'role_in_project' => 'ناظر کیفیت'],
            ['project_id' => $project1Id, 'user_id' => $users['ceo@pm.com'], 'role_in_project' => 'حامی پروژه'],

            ['project_id' => $project2Id, 'user_id' => $users['manager@pm.com'], 'role_in_project' => 'مدیر پروژه'],
            ['project_id' => $project2Id, 'user_id' => $users['member@pm.com'], 'role_in_project' => 'توسعه‌دهنده موبایل'],
            ['project_id' => $project2Id, 'user_id' => $users['observer@pm.com'], 'role_in_project' => 'تست‌کننده'],

            ['project_id' => $project3Id, 'user_id' => $users['manager@pm.com'], 'role_in_project' => 'مدیر پروژه'],
            ['project_id' => $project3Id, 'user_id' => $users['member@pm.com'], 'role_in_project' => 'طراح رابط کاربری'],
            ['project_id' => $project3Id, 'user_id' => $users['observer@pm.com'], 'role_in_project' => 'کارشناس محتوا'],
        ];

        foreach ($projectMembers as $member) {
            $member['created_at'] = $now;
            $member['updated_at'] = $now;
            DB::table('project_user')->insert($member);
        }
    }
}
