Files
2026-09-21 10:14:57 +01:00

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',
]),
);
}
}
}