File: /var/www/ipsremont-demo/database/factories/PartFactory.php
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use \App\Models\Part;
use Faker\Generator as Faker;
use \Illuminate\Support\Str;
use App\Services\RandomDataService;
$factory->define(Part::class, function (Faker $faker) {
$names = [
'Подшипник', "Коннектор", "Регулятор напряжения", "Блок цилиндра", "Бетоносмеситель", "Пресс гидравлический", "Двигатель", "Корпус насоса",
"Клапан впускной", "Свеча зажигания",
];
$names = array_flip($names);
$name = array_rand($names);
$external = sprintf('%08d', rand(0, 99999999));
if (!is_dir(base_path() . '/public' . Part::$imagePath)) {
mkdir(base_path() . '/public' . Part::$imagePath, 0777, true);
}
$imageName = Str::random(32). '.jpg';
$image = RandomDataService::saveRandomImage(base_path() . '/public' . Part::$imagePath. $imageName);
$data = [
'name' => $name . ' ' . $this->faker->unique()->name,
'external_id' => $external,
'item' => 'шт',
'price' => rand(5000, 10000) / 100,
'foto' => $imageName,
'external_type' => 'Детали',
];
return $data;
});