Files
portal-api/database/seeders/OsSeeder.php
T

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,
]
);
}
}
}
}