php-tenant/Database/Factories/WorkspaceFactory.php
Snider a24ee4bfa8
Some checks failed
CI / PHP 8.3 (pull_request) Failing after 3s
CI / PHP 8.4 (pull_request) Failing after 3s
fix(tenant): add strict_types and fix PSR-12 compliance across all PHP files
Added declare(strict_types=1) to 27 files that were missing it.
Ran Pint to fix PSR-12 issues (import ordering, operator spacing, brace
positioning) across 33 files.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-17 09:11:54 +00:00

83 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
namespace Core\Tenant\Database\Factories;
use Core\Tenant\Models\Workspace;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends Factory<Workspace>
*/
class WorkspaceFactory extends Factory
{
protected $model = Workspace::class;
/**
* Define the model's default state.
*
* @return array<string, mixed>
*/
public function definition(): array
{
$name = fake()->company();
$slug = fake()->unique()->slug(2);
return [
'name' => $name,
'slug' => $slug,
'domain' => $slug.'.host.uk.com',
'icon' => fake()->randomElement(['globe', 'building', 'newspaper', 'megaphone']),
'color' => fake()->randomElement(['violet', 'blue', 'green', 'amber', 'rose']),
'description' => fake()->sentence(),
'type' => 'cms',
'settings' => [],
'is_active' => true,
'sort_order' => fake()->numberBetween(1, 100),
];
}
/**
* Create a CMS workspace.
*/
public function cms(): static
{
return $this->state(fn (array $attributes) => [
'type' => 'cms',
]);
}
/**
* Create a static workspace.
*/
public function static(): static
{
return $this->state(fn (array $attributes) => [
'type' => 'static',
]);
}
/**
* Create an inactive workspace.
*/
public function inactive(): static
{
return $this->state(fn (array $attributes) => [
'is_active' => false,
]);
}
/**
* Create the main workspace (used in tests).
*/
public function main(): static
{
return $this->state(fn (array $attributes) => [
'name' => 'Host UK',
'slug' => 'main',
'domain' => 'hestia.host.uk.com',
'type' => 'cms',
]);
}
}