Add fixtures to generate randomized data
This commit is contained in:
		
							
								
								
									
										17
									
								
								src/DataFixtures/AppFixtures.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/DataFixtures/AppFixtures.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\DataFixtures; | ||||
|  | ||||
| use Doctrine\Bundle\FixturesBundle\Fixture; | ||||
| use Doctrine\Persistence\ObjectManager; | ||||
|  | ||||
| class AppFixtures extends Fixture | ||||
| { | ||||
|     public function load(ObjectManager $manager): void | ||||
|     { | ||||
|         // $product = new Product(); | ||||
|         // $manager->persist($product); | ||||
|  | ||||
|         $manager->flush(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										58
									
								
								src/DataFixtures/MemberCaseFixture.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								src/DataFixtures/MemberCaseFixture.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,58 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\DataFixtures; | ||||
|  | ||||
| use App\Entity\MemberCase; | ||||
| use App\Entity\ReferralSource; | ||||
| use App\Entity\User; | ||||
| use App\Entity\UserCase; | ||||
| use App\Enums\CaseLevel; | ||||
| use App\Enums\County; | ||||
| use Doctrine\Bundle\FixturesBundle\Fixture; | ||||
| use Doctrine\Common\DataFixtures\DependentFixtureInterface; | ||||
| use Doctrine\Persistence\ObjectManager; | ||||
|  | ||||
| class MemberCaseFixture extends Fixture implements DependentFixtureInterface | ||||
| { | ||||
|     public function load(ObjectManager $manager): void | ||||
|     { | ||||
|         return; | ||||
|         $sources = $manager->getRepository(ReferralSource::class)->findAll(); | ||||
|         $users = $manager->getRepository(User::class)->findAll(); | ||||
|  | ||||
|         $gen = \Faker\Factory::create(); | ||||
|  | ||||
|         for ($x = 0; $x < 50; $x++) { | ||||
|             $case = new MemberCase(); | ||||
|             $case->setCaseNumber($gen->numberBetween(1000000, 9999999)) | ||||
|                  ->setDcsCaseId($gen->numberBetween(1000000, 9999999)) | ||||
|                  ->setFirstName($gen->firstName()) | ||||
|                  ->setLastName($gen->lastName()) | ||||
|                  ->setCounty($gen->randomElement(County::class)) | ||||
|                  ->setReferralSource($gen->randomElement($sources)) | ||||
|                  ->setLevel($gen->randomElement(CaseLevel::class)) | ||||
|                  ->setAdmitDate($gen->dateTimeBetween('-1 year', 'now')) | ||||
|                  ->setReferralType('DCS') | ||||
|             ; | ||||
|  | ||||
|             $uc = new UserCase(); | ||||
|             $uc->setMemberCase($case); | ||||
|             $uc->setUser($gen->randomElement($users)); | ||||
|  | ||||
|             print "Adding member case {$case->getCaseNumber()}".PHP_EOL; | ||||
|  | ||||
|             $manager->persist($case); | ||||
|             $manager->persist($uc); | ||||
|         } | ||||
|  | ||||
|         $manager->flush(); | ||||
|     } | ||||
|  | ||||
|     public function getDependencies(): array | ||||
|     { | ||||
|         return [ | ||||
|             ReferralSourceFixture::class, | ||||
|             UserFixture::class, | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										83
									
								
								src/DataFixtures/MemberFixture.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								src/DataFixtures/MemberFixture.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,83 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\DataFixtures; | ||||
|  | ||||
| use App\Entity\Member; | ||||
| use App\Entity\MemberCase; | ||||
| use App\Enums\GenderType; | ||||
| use App\Enums\RaceType; | ||||
| use App\Enums\RelationshipType; | ||||
| use App\Enums\State; | ||||
| use Doctrine\Bundle\FixturesBundle\Fixture; | ||||
| use Doctrine\Common\DataFixtures\DependentFixtureInterface; | ||||
| use Doctrine\Persistence\ObjectManager; | ||||
|  | ||||
| class MemberFixture extends Fixture implements DependentFixtureInterface | ||||
| { | ||||
|     public function load(ObjectManager $manager): void | ||||
|     { | ||||
|         return; | ||||
|         $gen = \Faker\Factory::create(); | ||||
|         $cases = $manager->getRepository(MemberCase::class)->findAll(); | ||||
|  | ||||
|         foreach ($cases as $case) { | ||||
|             /** @var MemberCase $case */ | ||||
|             $caseLastName = $case->getLastName(); | ||||
|             print "Adding members for case {$case->getCaseName()}".PHP_EOL; | ||||
|             $memCount = $gen->numberBetween(0, 5); | ||||
|             for ($x = 0; $x < $memCount; $x++) { | ||||
|                 $isChild = $gen->boolean(); | ||||
|                 $isParent = ($isChild ? false : $gen->boolean()); | ||||
|                 $isLegalGuardian = (!$isParent && !$isChild ? $gen->boolean() : false); | ||||
|                 $dcsApproved = (!$isParent && !$isChild ? $gen->boolean() : false); | ||||
|                 $sameLastName = $gen->boolean(); | ||||
|                 $mem = new Member(); | ||||
|                 $name = $gen->firstName().' '.$gen->lastName(); | ||||
|                 $username = strtolower(str_replace(' ', '.', $name)); | ||||
|                 $phone = substr(str_replace(['-', '+', ' ', '(', ')'], '', $gen->e164PhoneNumber()), -10); | ||||
|  | ||||
|                 $mem->setRelationship($gen->randomElement(RelationshipType::class)) | ||||
|                     ->setPersonalId($gen->numberBetween(1000000, 9999999)) | ||||
|                     ->setGender($gen->randomElement(GenderType::class)) | ||||
|                     ->setRace($gen->randomElement(RaceType::class)) | ||||
|                     ->setPhone($phone) | ||||
|                     ->setCellPhone($phone) | ||||
|                     ->setEmail($username.'@'.$gen->freeEmailDomain()) | ||||
|                     ->setAddress($gen->streetAddress()) | ||||
|                     ->setCity($gen->city()) | ||||
|                     ->setState(State::IN->name) | ||||
|                     ->setZip($gen->postcode()) | ||||
|                     ->setDob( | ||||
|                         $gen->dateTimeBetween( | ||||
|                             ($isChild ? '-16 years' : '-50 years'), | ||||
|                             ($isParent || $isLegalGuardian ? '-16 years' : '-1 month') | ||||
|                         ) | ||||
|                     ) | ||||
|                     ->setFirstName($gen->firstName()) | ||||
|                     ->setLastName($sameLastName ? $caseLastName : $gen->lastName()) | ||||
|                     ->setChild($isChild) | ||||
|                     ->setParent($isParent) | ||||
|                     ->setLegalGuardian($isLegalGuardian) | ||||
|                     ->setAdultChild(false) | ||||
|                     ->setParentsLiveTogether(false) | ||||
|                     ->setDcsApproved($dcsApproved) | ||||
|                     ->setCaseId($case) | ||||
|                 ; | ||||
|  | ||||
|                 print "Adding member {$mem->getFirstName()} {$mem->getLastName()}".PHP_EOL; | ||||
|  | ||||
|                 $manager->persist($mem); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         $manager->flush(); | ||||
|     } | ||||
|  | ||||
|     public function getDependencies(): array | ||||
|     { | ||||
|         return [ | ||||
|             MemberCaseFixture::class, | ||||
|             ReferralFixture::class, | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										110
									
								
								src/DataFixtures/NoteFixture.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								src/DataFixtures/NoteFixture.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,110 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\DataFixtures; | ||||
|  | ||||
| use App\Entity\MemberCase; | ||||
| use App\Entity\Referral; | ||||
| use App\Entity\StandardNote; | ||||
| use App\Entity\VisitNote; | ||||
| use App\Enums\NoteLocation; | ||||
| use App\Enums\NoteMethod; | ||||
| use App\Enums\NoteStatus; | ||||
| use App\Enums\ReferralServiceType; | ||||
| use App\Enums\VisitQualityLevel; | ||||
| use Doctrine\Bundle\FixturesBundle\Fixture; | ||||
| use Doctrine\Common\DataFixtures\DependentFixtureInterface; | ||||
| use Doctrine\Persistence\ObjectManager; | ||||
|  | ||||
| class NoteFixture extends Fixture implements DependentFixtureInterface | ||||
| { | ||||
|     public function load(ObjectManager $manager): void | ||||
|     { | ||||
|         return; | ||||
|         $gen = \Faker\Factory::create(); | ||||
|         $refs = $manager->getRepository(Referral::class)->findAll(); | ||||
|  | ||||
|         foreach ($refs as $ref) { | ||||
|             /** @var Referral $ref */ | ||||
|             print "Adding notes for referral {$ref->getReferralId()}".PHP_EOL; | ||||
|             $noteCount = $gen->numberBetween(0, 10); | ||||
|  | ||||
|             $case = $ref->getMemberCase(); | ||||
|             $caseMembers = $case->getMembers(); | ||||
|  | ||||
|             for ($x = 0; $x < $noteCount; $x++) { | ||||
|                 $startTime = $gen->dateTimeBetween('06:00:00', '14:00:00'); | ||||
|                 $endTime = $gen->dateTimeBetween('12:00:00', '21:00:00'); | ||||
|  | ||||
|                 if ($startTime > $endTime) { | ||||
|                     $tmp = clone $endTime; | ||||
|                     $endTime = $startTime; | ||||
|                     $startTime = $tmp; | ||||
|                 } | ||||
|  | ||||
|                 if ($ref->getServiceCode() === ReferralServiceType::VS_THBB) { | ||||
|                     $note = new VisitNote(); | ||||
|                     $note->setReferral($ref) | ||||
|                          ->setDate($gen->dateTimeBetween($case->getAdmitDate()->format('Y-m-d'), 'now')) | ||||
|                          ->setStartTime($startTime) | ||||
|                          ->setEndTime($endTime) | ||||
|                          ->setStatus($gen->randomElement(NoteStatus::class)) | ||||
|                          ->setLocation($gen->randomElement(NoteLocation::class)) | ||||
|                          ->setMethod(NoteMethod::BILLABLE_SUPERVISED_VISIT) | ||||
|                          ->setParentalRole($gen->randomElement(VisitQualityLevel::class)) | ||||
|                          ->setChildDevelopment($gen->randomElement(VisitQualityLevel::class)) | ||||
|                          ->setAppropriateResponse($gen->randomElement(VisitQualityLevel::class)) | ||||
|                          ->setChildAheadOfSelf($gen->randomElement(VisitQualityLevel::class)) | ||||
|                          ->setShowsEmpathy($gen->randomElement(VisitQualityLevel::class)) | ||||
|                          ->setChildFocused($gen->randomElement(VisitQualityLevel::class)) | ||||
|                          ->setNarrative($gen->text(100)) | ||||
|                          ->setStrengths($gen->text(100)) | ||||
|                          ->setIssues($gen->text(100)) | ||||
|                          ->setRecommendation($gen->text(100)) | ||||
|                         //  ->setMembers( | ||||
|                         //      ( | ||||
|                         //          count($caseMembers) > 0 | ||||
|                         //         ? | ||||
|                         //         $gen->randomElements($caseMembers, $gen->numberBetween(1, count($caseMembers))) | ||||
|                         //         : | ||||
|                         //         null | ||||
|                         //      ) | ||||
|                         //  ) | ||||
|                     ; | ||||
|                     // dd($note); | ||||
|                 } else { | ||||
|                     $note = new StandardNote(); | ||||
|                     $note->setReferral($ref) | ||||
|                          ->setDate($gen->dateTimeBetween('-1 year', 'now')) | ||||
|                          ->setStartTime($startTime) | ||||
|                          ->setEndTime($endTime) | ||||
|                          ->setStatus($gen->randomElement(NoteStatus::class)) | ||||
|                          ->setLocation($gen->randomElement(NoteLocation::class)) | ||||
|                          ->setMethod(NoteMethod::BILLABLE) | ||||
|                          ->setNote($gen->text(100)) | ||||
|                         //  ->setMembers( | ||||
|                         //      ( | ||||
|                         //          count($caseMembers) > 0 | ||||
|                         //         ? | ||||
|                         //         $gen->randomElements($caseMembers, $gen->numberBetween(1, count($caseMembers))) | ||||
|                         //         : | ||||
|                         //         null | ||||
|                         //      ) | ||||
|                         //  ) | ||||
|                     ; | ||||
|                 } | ||||
|  | ||||
|                 $manager->persist($note); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         $manager->flush(); | ||||
|     } | ||||
|  | ||||
|     public function getDependencies(): array | ||||
|     { | ||||
|         return [ | ||||
|             MemberCaseFixture::class, | ||||
|             ReferralFixture::class, | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										47
									
								
								src/DataFixtures/ReferralFixture.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/DataFixtures/ReferralFixture.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\DataFixtures; | ||||
|  | ||||
| use App\Entity\MemberCase; | ||||
| use App\Entity\Referral; | ||||
| use App\Enums\ReferralServiceType; | ||||
| use Doctrine\Bundle\FixturesBundle\Fixture; | ||||
| use Doctrine\Common\DataFixtures\DependentFixtureInterface; | ||||
| use Doctrine\Persistence\ObjectManager; | ||||
|  | ||||
| class ReferralFixture extends Fixture implements DependentFixtureInterface | ||||
| { | ||||
|     public function load(ObjectManager $manager): void | ||||
|     { | ||||
|         return; | ||||
|         $gen = \Faker\Factory::create(); | ||||
|         $cases = $manager->getRepository(MemberCase::class)->findAll(); | ||||
|  | ||||
|         foreach ($cases as $case) { | ||||
|             print "Adding referrals for case {$case->getCaseNumber()}".PHP_EOL; | ||||
|             $refCount = $gen->numberBetween(0, 2); | ||||
|             for ($x = 0; $x < $refCount; $x++) { | ||||
|                 $ref = new Referral(); | ||||
|                 $ref->setReferralId($gen->numberBetween(1000000, 9999999)) | ||||
|                     ->setMemberCase($case) | ||||
|                     ->setServiceCode($gen->randomElement(ReferralServiceType::class)) | ||||
|                     ->setEndDate($gen->dateTimeBetween('+1 month', '+1 year')) | ||||
|                     ->setHours($gen->numberBetween(1, 75)) | ||||
|                 ; | ||||
|  | ||||
|                 print "Adding referral {$ref->getReferralId()}".PHP_EOL; | ||||
|  | ||||
|                 $manager->persist($ref); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         $manager->flush(); | ||||
|     } | ||||
|  | ||||
|     public function getDependencies(): array | ||||
|     { | ||||
|         return [ | ||||
|             MemberCaseFixture::class, | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										39
									
								
								src/DataFixtures/ReferralSourceFixture.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								src/DataFixtures/ReferralSourceFixture.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| <?php | ||||
|  | ||||
| namespace App\DataFixtures; | ||||
|  | ||||
| use App\Entity\ReferralSource; | ||||
| use App\Enums\County; | ||||
| use Doctrine\Bundle\FixturesBundle\Fixture; | ||||
| use Doctrine\Persistence\ObjectManager; | ||||
| use Faker\Factory; | ||||
|  | ||||
| class ReferralSourceFixture extends Fixture | ||||
| { | ||||
|     public function load(ObjectManager $manager): void | ||||
|     { | ||||
|         return; | ||||
|         $gen = Factory::create(); | ||||
|  | ||||
|         for ($x = 0; $x < 20; $x++) { | ||||
|             $src = new ReferralSource(); | ||||
|             $name = "{$gen->firstName()} {$gen->lastName()}"; | ||||
|             $username = strtolower(str_replace(' ', '.', $name)); | ||||
|             $src->setName($name) | ||||
|                 ->setEmail("{$username}@dcs.in.gov") | ||||
|                 ->setCounty((string) $gen->randomElement(County::class)->name) | ||||
|                 ->setAgency('DCS') | ||||
|                 ->setPhone(str_replace(['-', '+'], '', $gen->phoneNumber())) | ||||
|             ; | ||||
|  | ||||
|             print "Adding referral source {$src->getName()}".PHP_EOL; | ||||
|  | ||||
|             $manager->persist($src); | ||||
|         } | ||||
|  | ||||
|         // $product = new Product(); | ||||
|         // $manager->persist($product); | ||||
|  | ||||
|         $manager->flush(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										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