ldc-showroom-bo/database/seeders/Development/ProductSeeder.php
2025-05-27 09:11:43 +02:00

46 lines
1.4 KiB
PHP

<?php
namespace Database\Seeders\Development;
use App\Models\Product;
use App\Models\Range;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
use Uwil\LaravelCommon\Helpers\FileHelper;
class ProductSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run(): void
{
Schema::disableForeignKeyConstraints();
DB::table((new Product())->getTable())->truncate();
Schema::enableForeignKeyConstraints();
File::deleteDirectory(\storage_path('app/public/modelfiles/' . (new Product())->getTable()));
$rangeList = Range::all();
$hasDoneOne = 0;
foreach ($rangeList as $rangeModel) {
Product::factory($hasDoneOne === 0 ? 1 : \random_int(6, 10))->make()
->each(function (Product $product) use ($rangeModel) {
$product->picture = FileHelper::storeFile(
new Product(),
new \SplFileInfo(
\resource_path('../database/factories/assets/products/default-picture-800x800.jpg')
),
prefix: $product->tenant_id
);
$product->range()->associate($rangeModel);
$product->save();
});
$hasDoneOne++;
}
}
}