Files
animethemes-server/database/seeders/Scout/ImportModelsSeeder.php
T

63 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
namespace Database\Seeders\Scout;
use App\Models\List\Playlist;
use App\Models\Wiki\Anime;
use App\Models\Wiki\Anime\AnimeSynonym;
use App\Models\Wiki\Anime\AnimeTheme;
use App\Models\Wiki\Anime\Theme\AnimeThemeEntry;
use App\Models\Wiki\Artist;
use App\Models\Wiki\Series;
use App\Models\Wiki\Song;
use App\Models\Wiki\Studio;
use App\Models\Wiki\Video;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Config;
/**
* Class ImportModelsSeeder.
*/
class ImportModelsSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run(): void
{
$driver = Config::get('scout.driver');
if (empty($driver)) {
$this->command->info('No driver configured for Scout. Skipping models importing.');
return;
}
$this->scoutImport(Playlist::class);
$this->scoutImport(Anime::class);
$this->scoutImport(AnimeSynonym::class);
$this->scoutImport(AnimeTheme::class);
$this->scoutImport(AnimeThemeEntry::class);
$this->scoutImport(Artist::class);
$this->scoutImport(Series::class);
$this->scoutImport(Song::class);
$this->scoutImport(Studio::class);
$this->scoutImport(Video::class);
}
/**
* Call the scout import command for the given model.
*
* @param string $modelClass
* @return void
*/
private function scoutImport(string $modelClass): void
{
$this->command->info("Importing Models for {$modelClass}");
Artisan::call('scout:import', ['model' => $modelClass]);
}
}