From 2e2c0a033b9ba2dee4de5773f58ab8aee84fa746 Mon Sep 17 00:00:00 2001 From: "Harry (hjbdev)" Date: Mon, 7 Apr 2025 19:13:50 +0100 Subject: [PATCH] Add forNetwork method to ServerFactory and update DatabaseSeeder to associate servers with a network --- database/factories/ServerFactory.php | 9 +++++++++ database/seeders/DatabaseSeeder.php | 12 ++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/database/factories/ServerFactory.php b/database/factories/ServerFactory.php index 4defda0..8fc96fd 100644 --- a/database/factories/ServerFactory.php +++ b/database/factories/ServerFactory.php @@ -31,6 +31,15 @@ class ServerFactory extends Factory ]; } + public function forNetwork(string $networkId): static + { + return $this->state(function (array $attributes) use ($networkId) { + return [ + 'external_network_id' => $networkId, + ]; + }); + } + public function forOrganisation(int $organisationId): static { return $this->state(function (array $attributes) use ($organisationId) { diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index fc59cc1..aab5bb6 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,6 +2,7 @@ namespace Database\Seeders; +use App\Enums\NetworkType; use App\Enums\OrganisationRole; use App\Enums\ProviderType; use App\Enums\RepositoryType; @@ -19,8 +20,6 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - // User::factory(10)->create(); - $user = User::factory()->create([ 'name' => 'Harry', 'email' => 'harry@hjb.dev', @@ -39,7 +38,16 @@ class DatabaseSeeder extends Seeder 'token' => env('HETZNER_KEY'), ]); + $network = $organisation->networks()->create([ + 'type' => NetworkType::EXTERNAL, + 'name' => 'keystone', + 'external_id' => 'net-12345', + 'provider_id' => $provider->id, + 'ip_range' => fake()->ipv4() . '/24', + ]); + $servers = Server::factory(40) + ->forNetwork($network->id) ->forOrganisation($organisation->id) ->forProvider($provider->id) ->create();