wip
This commit is contained in:
		
							
								
								
									
										90
									
								
								database/factories/ResumeFactory.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								database/factories/ResumeFactory.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace Database\Factories; | ||||
|  | ||||
| use Illuminate\Database\Eloquent\Factories\Factory; | ||||
| use Illuminate\Support\Collection; | ||||
| use Toby\Eloquent\Models\Resume; | ||||
| use Toby\Eloquent\Models\Technology; | ||||
|  | ||||
| class ResumeFactory extends Factory | ||||
| { | ||||
|     protected $model = Resume::class; | ||||
|  | ||||
|     public function definition(): array | ||||
|     { | ||||
|         return [ | ||||
|             "name" => fn(array $attr) => empty($attr["user_id"]) ? $this->faker->name : null, | ||||
|             "description" => $this->faker->boolean(30) ? $this->faker->sentence : null, | ||||
|             "education" => $this->generateEducation(), | ||||
|             "languages" => $this->generateLanguages(), | ||||
|             "technologies" => $this->generateTechnologies(), | ||||
|             "projects" => $this->generateProjects(), | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     protected function generateEducation(): array | ||||
|     { | ||||
|         $items = []; | ||||
|  | ||||
|         for ($i = 0; $i < $this->faker->numberBetween(1, 2); $i++) { | ||||
|             $items[] = [ | ||||
|                 "school" => $this->faker->sentence, | ||||
|                 "degree" => $this->faker->sentence, | ||||
|                 "fieldOfStudy" => $this->faker->sentence, | ||||
|                 "startDate" => $this->faker->date, | ||||
|                 "endDate" => $this->faker->date, | ||||
|             ]; | ||||
|         } | ||||
|  | ||||
|         return $items; | ||||
|     } | ||||
|  | ||||
|     protected function generateLanguages(): array | ||||
|     { | ||||
|         $languages = new Collection(["english", "polish", "germany"]); | ||||
|         $number = $this->faker->numberBetween(1, $languages->count()); | ||||
|  | ||||
|         return $languages->random($number) | ||||
|             ->map(fn(string $language): array => [ | ||||
|                 "language" => $language, | ||||
|                 "level" => $this->faker->numberBetween(1, 6), | ||||
|             ]) | ||||
|             ->all(); | ||||
|     } | ||||
|  | ||||
|     protected function generateTechnologies(): array | ||||
|     { | ||||
|         $technologies = Technology::all(); | ||||
|         $number = $this->faker->numberBetween(2, $technologies->count()); | ||||
|  | ||||
|         return $technologies->random($number) | ||||
|             ->map(fn(string $technology): array => [ | ||||
|                 "technology" => $technology, | ||||
|                 "level" => $this->faker->numberBetween(1, 5), | ||||
|             ]) | ||||
|             ->all(); | ||||
|     } | ||||
|  | ||||
|     protected function generateProjects(): array | ||||
|     { | ||||
|         $items = []; | ||||
|         $technologies = Technology::all(); | ||||
|  | ||||
|         for ($i = 0; $i < $this->faker->numberBetween(1, 3); $i++) { | ||||
|             $number = $this->faker->numberBetween(2, $technologies->count()); | ||||
|  | ||||
|             $items[] = [ | ||||
|                 "description" => $this->faker->text, | ||||
|                 "technologies" => $technologies->random($number)->all(), | ||||
|                 "startDate" => $this->faker->date, | ||||
|                 "endDate" => $this->faker->date, | ||||
|                 "tasks" => $this->faker->text, | ||||
|             ]; | ||||
|         } | ||||
|  | ||||
|         return $items; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user