ultimatepos/database/seeders/HoldingAssetCategorySeeder.php

76 lines
6.5 KiB
PHP

<?php
namespace Database\Seeders;
use App\Category;
use Illuminate\Database\Seeder;
class HoldingAssetCategorySeeder extends Seeder
{
/**
* دسته‌بندی دارایی‌های ثابت برای هولدینگ‌های صنعتی بزرگ
* (الگوبرداری از ساختار دارایی‌های تسلا، دوو و هلدینگ‌های چندصنعتی).
*/
public function run(): void
{
$business_id = 1;
$created_by = 1;
$categories = [
['name' => 'ماشین‌آلات تولیدی', 'short_code' => 'MFG', 'description' => 'تجهیزات خط تولید، پرس، CNC و ماشین‌آلات صنعتی'],
['name' => 'خط مونتاژ و ربات صنعتی', 'short_code' => 'ROB', 'description' => 'خطوط مونتاژ خودکار، ربات‌های صنعتی و سیستم‌های اتوماسیون'],
['name' => 'تجهیزات خودروسازی', 'short_code' => 'AUT', 'description' => 'رنگ، جوش، قالب‌سازی، استامپینگ و تجهیزات تولید خودرو'],
['name' => 'تولید باتری و سلول انرژی', 'short_code' => 'BAT', 'description' => 'خطوط تولید باتری، پیل و سیستم‌های ذخیره‌سازی انرژی'],
['name' => 'زیرساخت شارژ و انرژی', 'short_code' => 'CHG', 'description' => 'ایستگاه شارژ، ترانسفورماتور، پست برق و زیرساخت انرژی'],
['name' => 'انرژی تجدیدپذیر', 'short_code' => 'REN', 'description' => 'پنل خورشیدی، توربین بادی و سیستم‌های انرژی پاک'],
['name' => 'تجهیزات دریایی و کشتی‌سازی', 'short_code' => 'SHP', 'description' => 'جرثقیل ساحلی، داک شناور و تجهیزات صنعت دریایی'],
['name' => 'جرثقیل و بلندبر صنعتی', 'short_code' => 'CRN', 'description' => 'جرثقیل سقفی، پل‌کرین، بالابر و تجهیزات بلندبری'],
['name' => 'تجهیزات الکترونیک و SMT', 'short_code' => 'ELC', 'description' => 'خط SMT، AOI، مونتاژ PCB و تجهیزات الکترونیک'],
['name' => 'املاک و مستغلات', 'short_code' => 'PRP', 'description' => 'زمین، ساختمان اداری، کارخانه و واحدهای صنعتی'],
['name' => 'تأسیسات ساختمانی', 'short_code' => 'BLD', 'description' => 'آسانسور، پله‌برقی، سیستم برق و آب ساختمان'],
['name' => 'تأسیسات HVAC و MEP', 'short_code' => 'HVC', 'description' => 'تهویه، سرمایش، گرمایش و تأسیسات مکانیکی-برقی'],
['name' => 'زیرساخت دیتاسنتر', 'short_code' => 'DTC', 'description' => 'رک، UPS، تهویه دیتاسنتر و تجهیزات زیرساخت IT'],
['name' => 'سرور و ذخیره‌ساز', 'short_code' => 'SRV', 'description' => 'سرور فیزیکی، SAN، NAS و سیستم‌های پشتیبان'],
['name' => 'شبکه و ارتباطات', 'short_code' => 'NET', 'description' => 'سوئیچ، روتر، فایروال، VoIP و تجهیزات شبکه'],
['name' => 'رایانه و تجهیزات کاربر', 'short_code' => 'EUC', 'description' => 'لپ‌تاپ، PC، مانیتور، پرینتر و تجهیزات کاربر نهایی'],
['name' => 'آزمایشگاه و تحقیق و توسعه', 'short_code' => 'LAB', 'description' => 'تجهیزات آزمایشگاهی، تست مواد و R&D'],
['name' => 'ابزار دقیق و اندازه‌گیری', 'short_code' => 'MET', 'description' => 'کالیبراسیون، CMM، میکرومتر و ابزار متالوژی'],
['name' => 'انبار و اتوماسیون لجستیک', 'short_code' => 'WMS', 'description' => 'سیستم AS/RS، نوار نقاله، بارکدخوان و WMS'],
['name' => 'لیفت‌تراک و جابجایی داخلی', 'short_code' => 'FLT', 'description' => 'لیفت‌تراک، پالت‌جک، جرثقیل انبار و AGV'],
['name' => 'ناوگان شرکتی و خودرو', 'short_code' => 'VEH', 'description' => 'خودروی سبک، سنگین، اتوبوس و ناوگان سازمانی'],
['name' => 'سیستم امنیت فیزیکی', 'short_code' => 'SEC', 'description' => 'دوربین، کنترل تردد، دزدگیر و حفاظت فیزیکی'],
['name' => 'ایمنی، HSE و آتش‌نشانی', 'short_code' => 'HSE', 'description' => 'کپسول آتش‌نشانی، سیستم اعلام حریق و تجهیزات HSE'],
['name' => 'مبلمان و تجهیزات اداری', 'short_code' => 'OFF', 'description' => 'میز، صندلی، کابینت، ویدئوکنفرانس و تجهیزات اداری'],
['name' => 'تجهیزات ساخت و عمران', 'short_code' => 'CON', 'description' => 'بولدوزر، بیل مکانیکی، کمپرسور و ماشین‌آلات عمرانی'],
['name' => 'پزشکی و رفاه سازمانی', 'short_code' => 'WLF', 'description' => 'تجهیزات درمانگاه، آمبولانس و رفاه کارکنان'],
['name' => 'نرم‌افزار و مجوز سازمانی', 'short_code' => 'LIC', 'description' => 'لایسنس ERP، CAD، PLM و نرم‌افزارهای سازمانی'],
['name' => 'دارایی‌های نامشهود و حقوقی', 'short_code' => 'INT', 'description' => 'حق امتیاز، علامت تجاری و دارایی‌های نامشهود'],
];
$now = now();
foreach ($categories as $category) {
$exists = Category::where('business_id', $business_id)
->where('category_type', 'asset')
->where('name', $category['name'])
->exists();
if ($exists) {
continue;
}
Category::create([
'name' => $category['name'],
'short_code' => $category['short_code'],
'description' => $category['description'],
'business_id' => $business_id,
'parent_id' => 0,
'created_by' => $created_by,
'category_type' => 'asset',
'created_at' => $now,
'updated_at' => $now,
]);
}
}
}