36 lines
1.0 KiB
PHP
Executable File
36 lines
1.0 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Modules\Countries\Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Carbon;
|
|
use Modules\Countries\Models\Country;
|
|
|
|
class IsoCountriesSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$now = Carbon::now();
|
|
/** @var list<array<string, mixed>> $countries */
|
|
$countries = json_decode(
|
|
file_get_contents(dirname(__DIR__) . '/Data/iso_countries.json'),
|
|
true,
|
|
flags: JSON_THROW_ON_ERROR,
|
|
);
|
|
|
|
foreach ($countries as $index => $country) {
|
|
Country::query()->updateOrCreate(
|
|
['alpha2' => $country['alpha2']],
|
|
array_merge($country, [
|
|
'is_active' => true,
|
|
'sort_order' => $index + 1,
|
|
'last_synced_at' => $now,
|
|
'iso_status' => 'official',
|
|
'source' => 'bundled-iso-3166-1',
|
|
'source_version' => '2026-06-15',
|
|
]),
|
|
);
|
|
}
|
|
}
|
|
}
|