ldc-startcoq/database/seeders/KeywordSeeder.php

55 lines
2.5 KiB
PHP
Raw Permalink Normal View History

2023-02-23 16:23:00 +01:00
<?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);
2023-02-23 16:23:00 +01:00
// 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);
2023-06-21 10:24:56 +00:00
$keywordable->keywordable_type = 'App\Models\Ingredient';
2023-02-23 16:23:00 +01:00
$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);
2023-06-21 10:24:56 +00:00
$keywordable->keywordable_type = 'App\Models\Product';
2023-02-23 16:23:00 +01:00
$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);
2023-06-21 10:24:56 +00:00
$keywordable->keywordable_type = 'App\Models\Packaging';
2023-02-23 16:23:00 +01:00
$keywordable->saveOrFail();
}//end if
2023-02-23 16:23:00 +01:00
});
});
}
}