Add fixtures to generate randomized data
This commit is contained in:
67
src/DataFixtures/UserFixture.php
Normal file
67
src/DataFixtures/UserFixture.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace App\DataFixtures;
|
||||
|
||||
use App\Entity\Company;
|
||||
use App\Entity\User;
|
||||
use App\Enums\CaseLevel;
|
||||
use App\Enums\RateType;
|
||||
use Doctrine\Bundle\FixturesBundle\Fixture;
|
||||
use Doctrine\Persistence\ObjectManager;
|
||||
use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
|
||||
|
||||
class UserFixture extends Fixture
|
||||
{
|
||||
public function __construct(
|
||||
private readonly UserPasswordHasherInterface $userPasswordHasher,
|
||||
) {
|
||||
|
||||
}
|
||||
|
||||
public function load(ObjectManager $manager): void
|
||||
{
|
||||
return;
|
||||
$comp = $manager->getRepository(Company::class)->findOneBy(['name' => 'Counseling Partners, LLC']);
|
||||
$gen = \Faker\Factory::create();
|
||||
for ($x = 0; $x < 20; $x++) {
|
||||
$user = new User();
|
||||
$name = $gen->firstName().' '.$gen->lastName();
|
||||
$username = strtolower(str_replace(' ', '.', $name));
|
||||
$cw = true;
|
||||
$cm = $gen->boolean();
|
||||
$t = $gen->boolean();
|
||||
$su = $gen->boolean();
|
||||
$roles = ['ROLE_USER', 'ROLE_CASE_WORKER'];
|
||||
if ($cm) {
|
||||
$roles[] = 'ROLE_CASE_MANAGER';
|
||||
}
|
||||
if ($t) {
|
||||
$roles[] = 'ROLE_THERAPIST';
|
||||
}
|
||||
if ($su) {
|
||||
$roles[] = 'ROLE_ADMIN';
|
||||
}
|
||||
|
||||
$user->setName($name)
|
||||
->setUsername($username)
|
||||
->setEmail($username.'@counselingpartnersllc.com')
|
||||
->setCaseManager($cm)
|
||||
->setCaseWorker($cw)
|
||||
->setTherapist($t)
|
||||
->setSu($su)
|
||||
->setRoles($roles)
|
||||
->setRateType($gen->randomElement(RateType::class))
|
||||
->setRate($gen->numberBetween(0, 100))
|
||||
->setLevel($gen->randomElement(CaseLevel::class))
|
||||
->setCompany($comp)
|
||||
->setPassword($this->userPasswordHasher->hashPassword($user, 'password'))
|
||||
;
|
||||
|
||||
print "Creating user $name - $username".PHP_EOL;
|
||||
|
||||
$manager->persist($user);
|
||||
}
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user