94 lines
2.4 KiB
PHP
94 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use App\Models\OsGroup;
|
|
use App\Models\Os;
|
|
|
|
class OsSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
/**
|
|
* OS Groups + Versions
|
|
*/
|
|
$data = [
|
|
[
|
|
'name' => 'Ubuntu',
|
|
'thumbnail' => 'ubuntu.png',
|
|
'module_host_id' => null,
|
|
'status' => 1,
|
|
'versions' => [
|
|
'20.04 LTS',
|
|
'22.04 LTS',
|
|
'24.04 LTS',
|
|
],
|
|
],
|
|
[
|
|
'name' => 'CentOS',
|
|
'thumbnail' => 'centos.png',
|
|
'module_host_id' => null,
|
|
'status' => 1,
|
|
'versions' => [
|
|
'7',
|
|
'8 Stream',
|
|
],
|
|
],
|
|
[
|
|
'name' => 'Debian',
|
|
'thumbnail' => 'debian.png',
|
|
'module_host_id' => null,
|
|
'status' => 1,
|
|
'versions' => [
|
|
'10',
|
|
'11',
|
|
'12',
|
|
],
|
|
],
|
|
[
|
|
'name' => 'Windows Server',
|
|
'thumbnail' => 'windows.png',
|
|
'module_host_id' => null,
|
|
'status' => 1,
|
|
'versions' => [
|
|
'2016',
|
|
'2019',
|
|
'2022',
|
|
],
|
|
],
|
|
];
|
|
|
|
foreach ($data as $groupData) {
|
|
|
|
/**
|
|
* Create or Update OS Group
|
|
*/
|
|
$group = OsGroup::updateOrCreate(
|
|
['name' => $groupData['name']],
|
|
[
|
|
'thumbnail' => $groupData['thumbnail'],
|
|
'module_host_id' => $groupData['module_host_id'],
|
|
'status' => $groupData['status'],
|
|
]
|
|
);
|
|
|
|
/**
|
|
* Create OS versions
|
|
*/
|
|
foreach ($groupData['versions'] as $version) {
|
|
Os::updateOrCreate(
|
|
[
|
|
'os_group_id' => $group->id,
|
|
'version' => $version,
|
|
],
|
|
[
|
|
'template_id' => null,
|
|
'status' => 1,
|
|
]
|
|
);
|
|
}
|
|
}
|
|
}
|
|
}
|