ldc-tregalette/database/seeders/Development/ProductSeeder.php

51 lines
1.6 KiB
PHP
Raw Permalink Normal View History

2023-12-15 15:53:55 +00:00
<?php
2023-12-18 12:42:06 +01:00
namespace Database\Seeders\Development;
2023-12-15 15:53:55 +00:00
use App\Lib\Helpers\FileStorageHelper;
use App\Models\Picto;
use App\Models\Product;
use Illuminate\Database\Seeder;
2023-12-18 12:42:06 +01:00
use Illuminate\Support\Facades\DB;
2023-12-18 11:33:22 +01:00
use Illuminate\Support\Facades\File;
2023-12-18 12:42:06 +01:00
use Illuminate\Support\Facades\Schema;
2023-12-15 15:53:55 +00:00
class ProductSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
2023-12-18 12:42:06 +01:00
Schema::disableForeignKeyConstraints();
DB::table((new Product())->getTable())->truncate();
Schema::enableForeignKeyConstraints();
2023-12-18 11:33:22 +01:00
File::deleteDirectory(\storage_path('app/public/modelfiles/' . (new Product())->getTable()));
2023-12-15 15:53:55 +00:00
Product::factory(12)->make()->each(function (Product $product) {
$product->picture = FileStorageHelper::storeFile(
new Product(),
new \SplFileInfo(
\resource_path('../database/factories/assets/products/default-picture-503x503.png')
)
);
$product->picture_thumbnail = FileStorageHelper::storeFile(
new Product(),
new \SplFileInfo(
\resource_path('../database/factories/assets/products/default-picture-310x310.png')
)
);
$product->order = \intval(Product::query()->max('order')) + 1;
$product->saveQuietly();
});
$pictos = Picto::query()->get();
Product::query()->each(function (Product $product) use ($pictos) {
$product->pictos()->saveManyQuietly($pictos->random(\rand(0, 3)));
});
}
}