redirect/database/factories/UserFactory.php

70 lines
1.7 KiB
PHP
Raw Normal View History

<?php
namespace Database\Factories;
2022-10-22 08:16:05 +00:00
use App\Models\Team;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Support\Str;
2022-10-22 08:16:05 +00:00
use Laravel\Jetstream\Features;
class UserFactory extends Factory
{
2022-10-22 08:16:05 +00:00
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = User::class;
/**
* Define the model's default state.
*
2022-10-22 08:16:05 +00:00
* @return array
*/
public function definition()
{
return [
2022-10-22 08:16:05 +00:00
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
}
/**
* Indicate that the model's email address should be unverified.
*
2022-10-22 08:16:05 +00:00
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
public function unverified()
{
2022-10-22 08:16:05 +00:00
return $this->state(function (array $attributes) {
return [
'email_verified_at' => null,
];
});
}
/**
* Indicate that the user should have a personal team.
*
* @return $this
*/
public function withPersonalTeam()
{
if (! Features::hasTeamFeatures()) {
return $this->state([]);
}
return $this->has(
Team::factory()
->state(function (array $attributes, User $user) {
return ['name' => $user->name.'\'s Team', 'user_id' => $user->id, 'personal_team' => true];
}),
'ownedTeams'
);
}
}