File: /home/xedaptot/ai.naniguide.com/database/seeders/LanguageSeeder.php
<?php
namespace Database\Seeders;
use App\Model\Language;
use Illuminate\Database\Seeder;
/**
* Ensure all supported languages exist in the database.
*
* Safe to run repeatedly (uses firstOrCreate on `code`).
* Called from DatabaseInit on initial setup and on every code update.
*/
class LanguageSeeder extends Seeder
{
public function run()
{
$languages = [
['name' => 'English', 'code' => 'en', 'region_code' => 'us', 'is_default' => true],
['name' => '日本語 (Japanese)', 'code' => 'ja', 'region_code' => 'ja', 'is_default' => false],
['name' => '简体中文 (Simplified)', 'code' => 'zh', 'region_code' => 'cn', 'is_default' => false],
['name' => 'Tiếng Việt', 'code' => 'vi', 'region_code' => 'vn', 'is_default' => false],
['name' => 'Spanish', 'code' => 'es', 'region_code' => 'es', 'is_default' => false],
['name' => 'Portuguese', 'code' => 'pt', 'region_code' => 'pt', 'is_default' => false],
['name' => 'Français', 'code' => 'fr', 'region_code' => 'fr', 'is_default' => false],
['name' => 'German', 'code' => 'de', 'region_code' => 'de', 'is_default' => false],
['name' => 'Italian', 'code' => 'it', 'region_code' => 'it', 'is_default' => false],
['name' => '한국어 (Korean)', 'code' => 'ko', 'region_code' => 'kr', 'is_default' => false],
['name' => 'Polski', 'code' => 'pl', 'region_code' => 'pl', 'is_default' => false],
['name' => 'Русский', 'code' => 'ru', 'region_code' => 'ru', 'is_default' => false],
['name' => 'ไทย', 'code' => 'th', 'region_code' => 'th', 'is_default' => false],
['name' => 'Čeština', 'code' => 'cs', 'region_code' => 'cz', 'is_default' => false],
['name' => 'Nederlands', 'code' => 'nl', 'region_code' => 'nl', 'is_default' => false],
['name' => 'Türkçe', 'code' => 'tr', 'region_code' => 'tr', 'is_default' => false],
['name' => 'Українська', 'code' => 'uk', 'region_code' => 'ua', 'is_default' => false],
];
foreach ($languages as $data) {
Language::firstOrCreate(
['code' => $data['code']],
[
'name' => $data['name'],
'code' => $data['code'],
'region_code' => $data['region_code'],
'status' => Language::STATUS_ACTIVE,
'is_default' => $data['is_default'],
]
);
}
// Ensure exactly one default language exists
if (!Language::where('is_default', true)->exists()) {
Language::where('code', 'en')->update(['is_default' => true]);
}
}
}