ldc-agis/database/seeders/SeasonalSectionSeeder.php
2023-10-20 16:16:36 +02:00

40 lines
1.5 KiB
PHP

<?php
namespace Database\Seeders;
use App\Enums\SeasonalSections\BackgroundEnum;
use App\Lib\Helpers\FileStorageHelper;
use App\Models\SeasonalSection;
use Illuminate\Database\Seeder;
class SeasonalSectionSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
FileStorageHelper::removeModelFiles(new SeasonalSection());
$publish_at = now()->subDays(rand(1, 10));
$unpublish_at = $publish_at->copy()->addDays(rand(10, 20));
foreach (BackgroundEnum::cases() as $i => $background) {
SeasonalSection::factory(1)->make()->each(
function (SeasonalSection $seasonalSection) use ($background, $i, $publish_at, $unpublish_at) {
$seasonalSection->background = $background;
$seasonalSection->published = $i === array_key_first(BackgroundEnum::cases()) ? true : false;
$seasonalSection->publish_at = $publish_at->subMonths();
$seasonalSection->unpublish_at = $unpublish_at->subMonths();
$seasonalSection->picture = FileStorageHelper::storeFile(
new SeasonalSection(),
new \SplFileInfo(
\resource_path('../database/factories/assets/seasonalsections/default-picture-362x542.png')
)
);
$seasonalSection->save();
}
);
}
}
}