firstOrFail(); $tenant2 = Tenant::where('slug', 'global')->firstOrFail(); $tenant1Projects = $tenant1->projects()->orderBy('id')->get(); $tenant2Projects = $tenant2->projects()->orderBy('id')->get(); $manager = User::where('email', 'manager@sepideh.ir')->firstOrFail(); $admin1 = User::where('email', 'admin@sepideh.ir')->firstOrFail(); $admin2 = User::where('email', 'admin@global.com')->firstOrFail(); // ───────────────────────────────────────────── // Tenant 1 — Sepideh Tasks // ───────────────────────────────────────────── $tenant1Tasks = [ // Project: ساختمان مسکونی گلستان [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[0]->id, 'title' => 'تأمین مصالح مرحله اسکلت', 'description' => 'خرید و تحویل میلگرد، سیمان و آجر برای اسکلت طبقات ۵ تا ۸', 'status' => 'in_progress', 'priority' => 'high', 'assignee_id' => $manager->id, 'due_date' => '2024-08-15', 'progress' => 60, 'estimated_hours' => 120.00, ], [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[0]->id, 'title' => 'نصب قالب‌بندی طبقه ۶', 'description' => 'قالب‌بندی ستون‌ها و دال طبقه ششم با نظارت مهندس ناظر', 'status' => 'todo', 'priority' => 'medium', 'assignee_id' => $admin1->id, 'due_date' => '2024-09-01', 'progress' => 0, 'estimated_hours' => 80.00, ], // Project: پل عابر سپید [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[1]->id, 'title' => 'مطالعات ژئوتکنیک', 'description' => 'انجاد گمانه‌های ژئوتکنیک و تهیه گزارش خاک‌شناسی محوطه پروژه', 'status' => 'in_progress', 'priority' => 'urgent', 'assignee_id' => $manager->id, 'due_date' => '2024-07-30', 'progress' => 80, 'estimated_hours' => 200.00, ], // Project: مجتمع تجاری مروارید [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[2]->id, 'title' => 'نصب سیستم تهویه مطبوع', 'description' => 'نصب چیلر، داکت‌ها و ایرواشر طبقات تجاری', 'status' => 'in_progress', 'priority' => 'high', 'assignee_id' => $manager->id, 'due_date' => '2024-11-30', 'progress' => 35, 'estimated_hours' => 480.00, ], [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[2]->id, 'title' => 'تأسیسات برقی فاز ۲', 'description' => 'سیم‌کشی تابلوهای برق اصلی و پنل‌های کنترلی طبقات ۴ تا ۸', 'status' => 'review', 'priority' => 'medium', 'assignee_id' => $admin1->id, 'due_date' => '2024-08-20', 'progress' => 90, 'estimated_hours' => 160.00, ], [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[2]->id, 'title' => 'نازک‌کاری دیوارهای داخلی', 'description' => 'گچ‌کاری و نازک‌کاری دیوارهای داخلی واحد‌های تجاری طبقات ۱ تا ۳', 'status' => 'todo', 'priority' => 'low', 'assignee_id' => null, 'due_date' => '2025-01-15', 'progress' => 0, 'estimated_hours' => 320.00, ], // Project: استخر و سونا سلامت [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[3]->id, 'title' => 'تست فشار لوله‌کشی', 'description' => 'تست هیدرواستاتیک لوله‌های آب سرد و گرم و سیستم فاضلاب', 'status' => 'done', 'priority' => 'high', 'assignee_id' => $admin1->id, 'due_date' => '2024-04-15', 'progress' => 100, 'estimated_hours' => 40.00, ], [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[3]->id, 'title' => 'تحویل نهایی به کارفرما', 'description' => 'آماده‌سازی اسناد تحویل، لیست عیوب و رفع آنها و تحویل رسمی', 'status' => 'done', 'priority' => 'medium', 'assignee_id' => $manager->id, 'due_date' => '2024-05-30', 'progress' => 100, 'estimated_hours' => 24.00, ], // Project: بازسازی بیمارستان شفا [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[4]->id, 'title' => 'تخریب دیوارهای داخلی بخش اورژانس', 'description' => 'تخریب و حمل مصالح دیوارهای غیرسازه‌ای بخش اورژانس فعلی', 'status' => 'todo', 'priority' => 'urgent', 'assignee_id' => $manager->id, 'due_date' => '2024-09-15', 'progress' => 0, 'estimated_hours' => 96.00, ], [ 'tenant_id' => $tenant1->id, 'project_id' => $tenant1Projects[4]->id, 'title' => 'تهیه نقشه‌های اجرایی', 'description' => 'تکمیل نقشه‌های اجرایی معماری، تأسیسات و برق برای بخش ICU', 'status' => 'in_progress', 'priority' => 'high', 'assignee_id' => $admin1->id, 'due_date' => '2024-08-10', 'progress' => 50, 'estimated_hours' => 160.00, ], ]; foreach ($tenant1Tasks as $taskData) { Task::create($taskData); } // ───────────────────────────────────────────── // Tenant 2 — Global Tasks // ───────────────────────────────────────────── $tenant2Tasks = [ // Project: Riverside Tower [ 'tenant_id' => $tenant2->id, 'project_id' => $tenant2Projects[0]->id, 'title' => 'Foundation Pouring — Phase 2', 'description' => 'Complete concrete pouring for the tower foundation section B including reinforcement inspection', 'status' => 'in_progress', 'priority' => 'urgent', 'assignee_id' => $admin2->id, 'due_date' => '2024-08-30', 'progress' => 70, 'estimated_hours' => 240.00, ], [ 'tenant_id' => $tenant2->id, 'project_id' => $tenant2Projects[0]->id, 'title' => 'Structural Steel Erection — Floors 5-8', 'description' => 'Erect and weld structural steel frames for floors 5 through 8 of the tower', 'status' => 'todo', 'priority' => 'high', 'assignee_id' => $admin2->id, 'due_date' => '2024-11-15', 'progress' => 0, 'estimated_hours' => 360.00, ], // Project: Industrial Warehouse Complex [ 'tenant_id' => $tenant2->id, 'project_id' => $tenant2Projects[1]->id, 'title' => 'Site Survey & Soil Testing', 'description' => 'Conduct topographic survey and soil bearing capacity tests across the 50,000 sqm site', 'status' => 'in_progress', 'priority' => 'high', 'assignee_id' => $admin2->id, 'due_date' => '2024-09-15', 'progress' => 45, 'estimated_hours' => 120.00, ], // Project: Greenfield School Campus [ 'tenant_id' => $tenant2->id, 'project_id' => $tenant2Projects[2]->id, 'title' => 'Final Inspection & Handover', 'description' => 'Complete final building inspection, fire safety certification, and handover to the school board', 'status' => 'done', 'priority' => 'medium', 'assignee_id' => $admin2->id, 'due_date' => '2024-07-10', 'progress' => 100, 'estimated_hours' => 40.00, ], [ 'tenant_id' => $tenant2->id, 'project_id' => $tenant2Projects[2]->id, 'title' => 'Landscaping & Parking Lot Completion', 'description' => 'Final grading, asphalt paving for parking area, and installation of outdoor lighting and signage', 'status' => 'review', 'priority' => 'low', 'assignee_id' => null, 'due_date' => '2024-07-15', 'progress' => 95, 'estimated_hours' => 80.00, ], ]; foreach ($tenant2Tasks as $taskData) { Task::create($taskData); } $total = count($tenant1Tasks) + count($tenant2Tasks); $this->command->info("Tasks seeded: {$total} records created."); } }