52 lines
1.4 KiB
PHP
52 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Database\Factories;
|
|
|
|
use App\Models\Foto;
|
|
use App\Models\Persona;
|
|
use Illuminate\Database\Eloquent\Factories\Factory;
|
|
|
|
/**
|
|
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Persona>
|
|
*/
|
|
class PersonaFactory extends Factory
|
|
{
|
|
/**
|
|
* The name of the factory's corresponding model.
|
|
*
|
|
* @var string
|
|
*/
|
|
protected $model = Persona::class;
|
|
|
|
/**
|
|
* Define the model's default state.
|
|
*
|
|
* @return array<string, mixed>
|
|
*/
|
|
public function definition(): array
|
|
{
|
|
$dni = $this->faker->unique()->numberBetween(20000000, 45000000);
|
|
$cuilPrefix = $this->faker->randomElement(['20', '27']);
|
|
$cuilSuffix = $this->faker->numberBetween(0, 9);
|
|
|
|
$fotoDefault = Foto::firstOrCreate(
|
|
['ruta' => 'images/avatar_default.png'],
|
|
[
|
|
'extension' => 'png',
|
|
'tamanio_bytes' => 136788,
|
|
'nombre' => 'avatar_default',
|
|
'mime_type' => 'image/png',
|
|
]
|
|
);
|
|
|
|
return [
|
|
'dni' => (string) $dni,
|
|
'nombre' => $this->faker->firstName(),
|
|
'apellido' => $this->faker->lastName(),
|
|
'cuil' => "{$cuilPrefix}{$dni}{$cuilSuffix}",
|
|
'fechanac' => $this->faker->dateTimeBetween('-60 years', '-18 years')->format('Y-m-d'),
|
|
'foto_id' => $fotoDefault->id,
|
|
];
|
|
}
|
|
}
|