Add comprehensive Architecture Decision Records (ADRs) detailing the new shipment review state machine, review history domain, and customer resubmission logic. This documentation establishes the separation between operational shipment status and the review lifecycle. Additionally, perform repository cleanup by removing obsolete Postman collections, environment files, test scripts, and unused migrations. - Add ADR-001 through ADR-005 regarding review workflow and state. - Add shipment review handoff documentation. - Remove redundant Postman resources and local environment configs. - Remove `test_pdf_generation.php` and `resubmit-test.json`. - Remove unused `shipment_packages` migration. - Rename and reorganize one-off maintenance scripts.
80 lines
4.3 KiB
PHP
80 lines
4.3 KiB
PHP
<?php
|
|
// اسکریپت آپدیت پیششماره تمام کشورهای استاندارد ISO 3166-1
|
|
// منبع: ITU-T E.164
|
|
|
|
$map = [
|
|
'AF' => '+93', 'AL' => '+355', 'DZ' => '+213', 'AS' => '+1', 'AD' => '+376',
|
|
'AO' => '+244', 'AG' => '+1', 'AR' => '+54', 'AM' => '+374', 'AU' => '+61',
|
|
'AT' => '+43', 'AZ' => '+994', 'BS' => '+1', 'BH' => '+973', 'BD' => '+880',
|
|
'BB' => '+1', 'BY' => '+375', 'BE' => '+32', 'BZ' => '+501', 'BJ' => '+229',
|
|
'BT' => '+975', 'BO' => '+591', 'BA' => '+387', 'BW' => '+267', 'BR' => '+55',
|
|
'BN' => '+673', 'BG' => '+359', 'BF' => '+226', 'BI' => '+257', 'KH' => '+855',
|
|
'CM' => '+237', 'CA' => '+1', 'CV' => '+238', 'CF' => '+236', 'TD' => '+235',
|
|
'CL' => '+56', 'CN' => '+86', 'CO' => '+57', 'KM' => '+269', 'CG' => '+242',
|
|
'CD' => '+243', 'CR' => '+506', 'CI' => '+225', 'HR' => '+385', 'CU' => '+53',
|
|
'CY' => '+357', 'CZ' => '+420', 'DK' => '+45', 'DJ' => '+253', 'DM' => '+1',
|
|
'DO' => '+1', 'EC' => '+593', 'EG' => '+20', 'SV' => '+503', 'GQ' => '+240',
|
|
'ER' => '+291', 'EE' => '+372', 'ET' => '+251', 'FJ' => '+679', 'FI' => '+358',
|
|
'FR' => '+33', 'GA' => '+241', 'GM' => '+220', 'GE' => '+995', 'DE' => '+49',
|
|
'GH' => '+233', 'GR' => '+30', 'GD' => '+1', 'GT' => '+502', 'GN' => '+224',
|
|
'GW' => '+245', 'GY' => '+592', 'HT' => '+509', 'HN' => '+504', 'HK' => '+852',
|
|
'HU' => '+36', 'IS' => '+354', 'IN' => '+91', 'ID' => '+62', 'IR' => '+98',
|
|
'IQ' => '+964', 'IE' => '+353', 'IL' => '+972', 'IT' => '+39', 'JM' => '+1',
|
|
'JP' => '+81', 'JO' => '+962', 'KZ' => '+7', 'KE' => '+254', 'KI' => '+686',
|
|
'KP' => '+850', 'KR' => '+82', 'KW' => '+965', 'KG' => '+996', 'LA' => '+856',
|
|
'LV' => '+371', 'LB' => '+961', 'LS' => '+266', 'LR' => '+231', 'LY' => '+218',
|
|
'LI' => '+423', 'LT' => '+370', 'LU' => '+352', 'MO' => '+853', 'MK' => '+389',
|
|
'MG' => '+261', 'MW' => '+265', 'MY' => '+60', 'MV' => '+960', 'ML' => '+223',
|
|
'MT' => '+356', 'MH' => '+692', 'MR' => '+222', 'MU' => '+230', 'MX' => '+52',
|
|
'FM' => '+691', 'MD' => '+373', 'MC' => '+377', 'MN' => '+976', 'ME' => '+382',
|
|
'MA' => '+212', 'MZ' => '+258', 'MM' => '+95', 'NA' => '+264', 'NR' => '+674',
|
|
'NP' => '+977', 'NL' => '+31', 'NZ' => '+64', 'NI' => '+505', 'NE' => '+227',
|
|
'NG' => '+234', 'NO' => '+47', 'OM' => '+968', 'PK' => '+92', 'PW' => '+680',
|
|
'PA' => '+507', 'PG' => '+675', 'PY' => '+595', 'PE' => '+51', 'PH' => '+63',
|
|
'PL' => '+48', 'PT' => '+351', 'QA' => '+974', 'RO' => '+40', 'RU' => '+7',
|
|
'RW' => '+250', 'KN' => '+1', 'LC' => '+1', 'VC' => '+1', 'WS' => '+685',
|
|
'SM' => '+378', 'ST' => '+239', 'SA' => '+966', 'SN' => '+221', 'RS' => '+381',
|
|
'SC' => '+248', 'SL' => '+232', 'SG' => '+65', 'SK' => '+421', 'SI' => '+386',
|
|
'SB' => '+677', 'SO' => '+252', 'ZA' => '+27', 'SS' => '+211', 'ES' => '+34',
|
|
'LK' => '+94', 'SD' => '+249', 'SR' => '+597', 'SZ' => '+268', 'SE' => '+46',
|
|
'CH' => '+41', 'SY' => '+963', 'TW' => '+886', 'TJ' => '+992', 'TZ' => '+255',
|
|
'TH' => '+66', 'TL' => '+670', 'TG' => '+228', 'TO' => '+676', 'TT' => '+1',
|
|
'TN' => '+216', 'TR' => '+90', 'TM' => '+993', 'TV' => '+688', 'UG' => '+256',
|
|
'UA' => '+380', 'AE' => '+971', 'GB' => '+44', 'US' => '+1', 'UY' => '+598',
|
|
'UZ' => '+998', 'VU' => '+678', 'VA' => '+379', 'VE' => '+58', 'VN' => '+84',
|
|
'YE' => '+967', 'ZM' => '+260', 'ZW' => '+263', 'PS' => '+970',
|
|
];
|
|
|
|
require __DIR__ . '/vendor/autoload.php';
|
|
$app = require_once __DIR__ . '/bootstrap/app.php';
|
|
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
|
|
|
|
use App\Models\Country;
|
|
|
|
$updated = 0;
|
|
$skipped = 0;
|
|
foreach ($map as $iso => $code) {
|
|
$cnt = Country::where('iso_code', $iso)->update(['calling_code' => $code]);
|
|
if ($cnt > 0) {
|
|
$updated += $cnt;
|
|
} else {
|
|
$skipped++;
|
|
}
|
|
}
|
|
|
|
echo "\n=== Done ===\n";
|
|
echo "Total in map: " . count($map) . "\n";
|
|
echo "Updated: {$updated}\n";
|
|
echo "Skipped (country not in DB): {$skipped}\n";
|
|
echo "Countries with calling_code in DB: " . Country::whereNotNull('calling_code')->count() . "\n";
|
|
echo "Total countries in DB: " . Country::count() . "\n";
|
|
|
|
// لیست کشورهایی که calling_code ندارن
|
|
$missing = Country::whereNull('calling_code')->pluck('name', 'iso_code')->toArray();
|
|
if (!empty($missing)) {
|
|
echo "\nCountries still missing calling_code:\n";
|
|
foreach ($missing as $iso => $name) {
|
|
echo " - {$iso}: {$name}\n";
|
|
}
|
|
}
|