ultimatepos/database/seeders/ExtendedIndustrialAssetCategorySeeder.php

164 lines
7.9 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Database\Seeders;
use App\Category;
use Illuminate\Database\Seeder;
class ExtendedIndustrialAssetCategorySeeder extends Seeder
{
/**
* دسته‌بندی تکمیلی دارایی بر اساس:
* - NASA (هوافضا و فضا)
* - Siemens (اتوماسیون، انرژی، پزشکی، ریل)
* - Samsung (نیمه‌رسانا، نمایشگر، حافظه)
* - شرکت حمل‌ونقل بین‌المللی (هوا، دریا، ریل، بندر)
* - قطعه‌سازی، ریخته‌گری و آهنگری
*/
public function run(): void
{
$business_id = 1;
$created_by = 1;
$categories = [
// ── NASA / هوافضا ──────────────────────────────────────────
[
'name' => 'تجهیزات پرتاب و فضاپیما',
'short_code' => 'AER',
'description' => 'موشک، مرحله پرتاب، سازه فضاپیما، موتور راکت و زیرساخت پایگاه پرتاب (الگوی NASA)',
],
[
'name' => 'شبیه‌ساز و تونل باد فضایی',
'short_code' => 'AET',
'description' => 'تونل باد هایپرسونیک، محفظه خلاء، شبیه‌ساز میکروگرانیتی و تست محیط فضا',
],
[
'name' => 'اتاق تمیز کلاس نیمه‌رسانا',
'short_code' => 'CLN',
'description' => 'کلین‌روم ISO کلاس ۱ تا ۸، فیلتر HEPA، سیستم کنترل ذرات برای فاب و فضا',
],
[
'name' => 'ایستگاه زمینی و مخابرات ماهواره',
'short_code' => 'GND',
'description' => 'دیش ماهواره، تله‌متری، ردیابی مدار و مرکز کنترل ماموریت',
],
// ── Siemens / اتوماسیون و انرژی ────────────────────────────
[
'name' => 'PLC، SCADA و درایو صنعتی',
'short_code' => 'PLC',
'description' => 'PLC، HMI، SCADA، اینورتر، سروو درایو و اتوماسیون کارخانه (الگوی Siemens)',
],
[
'name' => 'توربین و ژنراتور صنعتی',
'short_code' => 'TUR',
'description' => 'توربین گاز، بخار، ژنراتور نیروگاهی و تجهیزات تولید برق صنعتی',
],
[
'name' => 'تصویربرداری و تجهیزات پزشکی',
'short_code' => 'IMG',
'description' => 'MRI، CT-Scan، سونوگرافی، رادیولوژی و تجهیزات تشخیصی (Siemens Healthineers)',
],
[
'name' => 'سیگنالینگ و برق ریلی',
'short_code' => 'SIG',
'description' => 'ETCS، سیگنالینگ، کاتنری، تراکشن الکتریکی و سیستم‌های ریلی',
],
// ── Samsung / نیمه‌رسانا و نمایشگر ───────────────────────
[
'name' => 'خط فاب و لیتوگرافی نیمه‌رسانا',
'short_code' => 'FAB',
'description' => 'لیتوگرافی، اتچ، CMP، CVD و خط تولید ویفر (الگوی Samsung Foundry)',
],
[
'name' => 'تولید پنل OLED و LCD',
'short_code' => 'DSP',
'description' => 'خط تولید نمایشگر، لایه‌گذاری OLED، بایندینگ و ماژول پنل',
],
[
'name' => 'خط تولید حافظه و چیپ',
'short_code' => 'MEM',
'description' => 'تولید NAND، DRAM، بسته‌بندی چیپ و تست نهایی حافظه',
],
// ── حمل‌ونقل بین‌المللی ───────────────────────────────────
[
'name' => 'ناوگان هوایی بین‌المللی',
'short_code' => 'AIR',
'description' => 'هواپیمای باری و مسافری، موتور هوایی و تجهیزات ناوگان پروازی',
],
[
'name' => 'کشتی و شناور باربری',
'short_code' => 'VES',
'description' => 'کشتی کانتینربر، تانکر، RO-RO و ناوگان دریایی عملیاتی',
],
[
'name' => 'کانتینر و حمل ترکیبی',
'short_code' => 'IMC',
'description' => 'کانتینر ISO، شاسی، یخچال‌داری (Reefer) و تجهیزات intermodal',
],
[
'name' => 'واگن و لکوموتیو ریلی',
'short_code' => 'RAL',
'description' => 'لکوموتیو، واگن باری، مسافری و تجهیزات خط آهن بین‌المللی',
],
[
'name' => 'تجهیزات بندر و ترمینال',
'short_code' => 'PRT',
'description' => 'RTG، STS کرین بندر، اسکنر گمرکی و زیرساخت ترمینال بار',
],
// ── قطعه‌سازی، ریخته‌گری و آهنگری ─────────────────────────
[
'name' => 'کوره و خط ریخته‌گری',
'short_code' => 'FND',
'description' => 'کوره القایی، ریخته‌گری ماسه‌ای، دقیق (Investment) و خط ذوب',
],
[
'name' => 'آهنگری و شکل‌دهی حرارتی',
'short_code' => 'FRG',
'description' => 'پرس آهنگری، ماشینکاری حرارتی، نورد و شکل‌دهی فلز',
],
[
'name' => 'قالب، دای و ابزارسازی',
'short_code' => 'TLM',
'description' => 'قالب تزریق، دای‌کست، ابزار برش و ساخت قالب تولید قطعه',
],
[
'name' => 'عملیات حرارتی و پوشش سطح',
'short_code' => 'HTT',
'description' => 'کوره عملیات حرارتی، گالوانیزه، آنادایز و پوشش صنعتی قطعات',
],
];
$now = now();
foreach ($categories as $category) {
$exists = Category::where('business_id', $business_id)
->where('category_type', 'asset')
->where(function ($query) use ($category) {
$query->where('name', $category['name'])
->orWhere('short_code', $category['short_code']);
})
->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,
]);
}
}
}