ldc-flucollector/database/seeders/DatabaseSeeder.php
Jérémy Munsch 656120f042
TMP
- Arcadia Xml Jobs WIP
- Api WIP
2022-04-11 12:41:44 +02:00

53 lines
1.9 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\ArcadiaBrand;
use App\Models\Service;
use App\Models\XmlInco;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;
use SplFileInfo;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
/** @var \Illuminate\Database\Eloquent\Collection $services */
$services = Service::factory(5)->create();
/** @var \Illuminate\Database\Eloquent\Collection $brands */
$brands = ArcadiaBrand::factory(10)->create();
// * Associate brands to services
$services->map(function (Service $service) use (&$brands) {
$pullBrands = $brands->random(rand(1, 2));
$service->arcadiaBrands()->sync($pullBrands);
$brands = $brands->diff($pullBrands);
});
$disk = Storage::disk('inco');
$brands->map(function (ArcadiaBrand $brand) use ($disk) {
XmlInco::factory(rand(150, 355))->make()
->each(function (XmlInco $xmlInco) use ($disk, $brand) {
$xmlInco->pictures = collect([
new SplFileInfo(resource_path('seeders/xml_inco/fakeimage1.png')),
new SplFileInfo(resource_path('seeders/xml_inco/fakeimage2.png'))
])->random(rand(0, 2))->map(function (SplFileInfo $image) use ($disk) {
$imgNamePath = $image->getFilename();
$imageFinalPath = "images/inco/$imgNamePath";
$disk->put($imgNamePath, File::get($image->getPathname()));
return $imageFinalPath;
})->all();
$xmlInco->arcadiaBrand()->associate($brand);
$xmlInco->saveOrFail();
});
});
}
}