diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php index ea955ad..ee72725 100644 --- a/database/factories/UserFactory.php +++ b/database/factories/UserFactory.php @@ -2,6 +2,7 @@ namespace Database\Factories; +use App\Models\Enums\UserRole; use App\Models\Team; use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; @@ -19,6 +20,8 @@ class UserFactory extends Factory */ protected static ?string $password; + protected static ?int $role; + /** * Define the model's default state. * @@ -28,14 +31,18 @@ public function definition(): array { return [ 'name' => fake()->name(), + 'username' => fake()->unique()->userName(), 'email' => fake()->unique()->safeEmail(), 'email_verified_at' => now(), + 'phone' => fake()->phoneNumber(), + 'role' => static::$role ??= UserRole::Technologist->value, 'password' => static::$password ??= Hash::make('password'), 'two_factor_secret' => null, 'two_factor_recovery_codes' => null, 'remember_token' => Str::random(10), 'profile_photo_path' => null, 'current_team_id' => null, + 'site_id' => null, ]; } diff --git a/database/migrations/0001_01_01_000000_create_users_table.php b/database/migrations/0001_01_01_000000_create_users_table.php index c1821c8..eefd1f2 100644 --- a/database/migrations/0001_01_01_000000_create_users_table.php +++ b/database/migrations/0001_01_01_000000_create_users_table.php @@ -23,7 +23,7 @@ public function up(): void $table->string('password'); $table->rememberToken(); $table->unsignedTinyInteger('role')->default(UserRole::Guest->value); - //$table->foreignId('current_team_id')->nullable(); + $table->foreignId('current_team_id')->nullable(); $table->string('profile_photo_path')->nullable(); $table->foreignIdFor(Site::class)->nullable()->index(); $table->timestamps(); diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d01a0ef..63e60e0 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -2,7 +2,6 @@ namespace Database\Seeders; -use App\Models\User; // use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; @@ -13,11 +12,10 @@ class DatabaseSeeder extends Seeder */ public function run(): void { - // User::factory(10)->create(); - - User::factory()->create([ - 'name' => 'Test User', - 'email' => 'test@example.com', + $this->call([ + SiteSeeder::class, + UserSeeder::class, ]); + } } diff --git a/database/seeders/SiteSeeder.php b/database/seeders/SiteSeeder.php new file mode 100644 index 0000000..8bc9ea7 --- /dev/null +++ b/database/seeders/SiteSeeder.php @@ -0,0 +1,25 @@ + 'Chevron', + 'is_active' => true, + ]); + Site::create([ + 'name' => 'Srinivasa', + 'is_active' => true, + ]); + Site::create([ + 'name' => 'Dummy Site', + 'is_active' => false, + ]); + } +} diff --git a/database/seeders/UserSeeder.php b/database/seeders/UserSeeder.php new file mode 100644 index 0000000..c95959e --- /dev/null +++ b/database/seeders/UserSeeder.php @@ -0,0 +1,32 @@ +create(); + + User::factory()->create([ + 'name' => 'Administrator', + 'username' => 'admin', + 'email' => 'test@example.com', + 'role' => UserRole::Admin->value, + ]); + + User::factory(2)->create([ + 'site_id' => 1, + 'role' => UserRole::Technologist->value, + ]); + + User::factory(2)->create([ + 'site_id' => 2, + 'role' => UserRole::Technologist->value, + ]); + } +}