54 lines
2.5 KiB
PHP
54 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Enums\KeywordCategoryEnum;
|
|
use App\Models\Keyword;
|
|
use App\Models\Keywordable;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class KeywordSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run()
|
|
{
|
|
$this->call(KeywordInitSeeder::class);
|
|
// Seeder for keywordables table.
|
|
Keyword::query()->get()->each(function (Keyword $keyword) {
|
|
Keywordable::factory(mt_rand(1, 3))->make()->each(function (Keywordable $keywordable) use ($keyword) {
|
|
if (
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[1]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[2]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[3]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[4]->value
|
|
) {
|
|
$keywordable->keyword()->associate($keyword);
|
|
$keywordable->keywordable_type = 'App\Models\Ingredient';
|
|
$keywordable->saveOrFail();
|
|
} elseif (
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[5]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[6]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[7]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[8]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[9]->value
|
|
) {
|
|
$keywordable->keyword()->associate($keyword);
|
|
$keywordable->keywordable_type = 'App\Models\Product';
|
|
$keywordable->saveOrFail();
|
|
} elseif (
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[10]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[11]->value ||
|
|
$keyword->keyword_cat->value === \collect(KeywordCategoryEnum::cases())[12]->value
|
|
) {
|
|
$keywordable->keyword()->associate($keyword);
|
|
$keywordable->keywordable_type = 'App\Models\Packaging';
|
|
$keywordable->saveOrFail();
|
|
}//end if
|
|
});
|
|
});
|
|
}
|
|
}
|