HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
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]);
        }
    }
}