36 lines
1.4 KiB
PHP
36 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
|
|
use App\Models\Workspace;
|
|
use App\Models\Cluster;
|
|
use App\Models\Server;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
class ServerFactory extends Factory
|
|
{
|
|
protected $model = Server::class;
|
|
|
|
public function definition(): array
|
|
{
|
|
$env = $this->faker->randomElement(['prod', 'staging', 'edge']);
|
|
return [
|
|
'workspace_id' => Workspace::factory(),
|
|
'cluster_id' => Cluster::factory(),
|
|
'name' => $env . '-' . $this->faker->unique()->numerify('node-##'),
|
|
'region' => $this->faker->randomElement(['eu-central-1', 'eu-west-1', 'us-east-1', 'ap-south-1']),
|
|
'country_flag' => $this->faker->randomElement(['🇩🇪', '🇳🇱', '🇮🇪', '🇺🇸', '🇮🇳']),
|
|
'env' => $env,
|
|
'cpu_cores' => $this->faker->randomElement([4, 8, 16]),
|
|
'ram_gb' => $this->faker->randomElement([16, 32, 64, 128]),
|
|
'disk_gb' => $this->faker->randomElement([160, 320, 640, 1280]),
|
|
'cpu_load_pct' => $this->faker->numberBetween(8, 78),
|
|
'ram_used_pct' => $this->faker->numberBetween(15, 80),
|
|
'disk_used_pct' => $this->faker->numberBetween(20, 75),
|
|
'status' => $this->faker->randomElement(['ok', 'ok', 'ok', 'warn']),
|
|
'ip' => $this->faker->ipv4(),
|
|
];
|
|
}
|
|
}
|