ldc-startcoq/database/seeders/KeywordSeeder.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
});
});
}
}