mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-16 18:36:18 +00:00
feat: add country iso enum
This commit is contained in:
@ -1,6 +1,16 @@
|
||||
import { ApiProperty, PickType } from '@nestjs/swagger';
|
||||
import { IsDateString, IsNotEmpty, IsNumberString, IsOptional, IsString, MaxLength, MinLength } from 'class-validator';
|
||||
import {
|
||||
IsDateString,
|
||||
IsEnum,
|
||||
IsNotEmpty,
|
||||
IsNumberString,
|
||||
IsOptional,
|
||||
IsString,
|
||||
MaxLength,
|
||||
MinLength,
|
||||
} from 'class-validator';
|
||||
import { i18nValidationMessage as i18n } from 'nestjs-i18n';
|
||||
import { CountryIso } from '~/common/enums';
|
||||
import { DEFAULT_OTP_LENGTH } from '~/common/modules/otp/constants';
|
||||
import { IsAbove18 } from '~/core/decorators/validations';
|
||||
import { CreateUnverifiedUserRequestDto } from './create-unverified-user.request.dto';
|
||||
@ -22,10 +32,11 @@ export class VerifyUserRequestDto extends PickType(CreateUnverifiedUserRequestDt
|
||||
dateOfBirth!: Date;
|
||||
|
||||
@ApiProperty({ example: 'JO' })
|
||||
@IsString({ message: i18n('validation.IsString', { path: 'general', property: 'customer.countryOfResidence' }) })
|
||||
@IsNotEmpty({ message: i18n('validation.IsNotEmpty', { path: 'general', property: 'customer.countryOfResidence' }) })
|
||||
@IsEnum(CountryIso, {
|
||||
message: i18n('validation.IsEnum', { path: 'general', property: 'customer.countryOfResidence' }),
|
||||
})
|
||||
@IsOptional()
|
||||
countryOfResidence: string = 'SA';
|
||||
countryOfResidence: CountryIso = CountryIso.SAUDI_ARABIA;
|
||||
|
||||
@ApiProperty({ example: '111111' })
|
||||
@IsNumberString(
|
||||
|
253
src/common/constants/countries-numeric-iso.constant.ts
Normal file
253
src/common/constants/countries-numeric-iso.constant.ts
Normal file
@ -0,0 +1,253 @@
|
||||
import { CountryIso } from '../enums';
|
||||
|
||||
export const CountriesNumericISO: Record<CountryIso, string> = {
|
||||
[CountryIso.ARUBA]: '533',
|
||||
[CountryIso.AFGHANISTAN]: '004',
|
||||
[CountryIso.ANGOLA]: '024',
|
||||
[CountryIso.ANGUILLA]: '660',
|
||||
[CountryIso.ALAND_ISLANDS]: '248',
|
||||
[CountryIso.ALBANIA]: '008',
|
||||
[CountryIso.ANDORRA]: '020',
|
||||
[CountryIso.UNITED_ARAB_EMIRATES]: '784',
|
||||
[CountryIso.ARGENTINA]: '032',
|
||||
[CountryIso.ARMENIA]: '051',
|
||||
[CountryIso.AMERICAN_SAMOA]: '016',
|
||||
[CountryIso.ANTARCTICA]: '010',
|
||||
[CountryIso.FRENCH_SOUTHERN_TERRITORIES]: '260',
|
||||
[CountryIso.ANTIGUA_AND_BARBUDA]: '028',
|
||||
[CountryIso.AUSTRALIA]: '036',
|
||||
[CountryIso.AUSTRIA]: '040',
|
||||
[CountryIso.AZERBAIJAN]: '031',
|
||||
[CountryIso.BURUNDI]: '108',
|
||||
[CountryIso.BELGIUM]: '056',
|
||||
[CountryIso.BENIN]: '204',
|
||||
[CountryIso.BONAIRE_SINT_EUSTATIUS_AND_SABA]: '535',
|
||||
[CountryIso.BURKINA_FASO]: '854',
|
||||
[CountryIso.BANGLADESH]: '050',
|
||||
[CountryIso.BULGARIA]: '100',
|
||||
[CountryIso.BAHRAIN]: '048',
|
||||
[CountryIso.BAHAMAS]: '044',
|
||||
[CountryIso.BOSNIA_AND_HERZEGOVINA]: '070',
|
||||
[CountryIso.SAINT_BARTHÉLEMY]: '652',
|
||||
[CountryIso.BELARUS]: '112',
|
||||
[CountryIso.BELIZE]: '084',
|
||||
[CountryIso.BERMUDA]: '060',
|
||||
[CountryIso.BOLIVIA_PLURINATIONAL_STATE_OF]: '068',
|
||||
[CountryIso.BRAZIL]: '076',
|
||||
[CountryIso.BARBADOS]: '052',
|
||||
[CountryIso.BRUNEI_DARUSSALAM]: '096',
|
||||
[CountryIso.BHUTAN]: '064',
|
||||
[CountryIso.BOUVET_ISLAND]: '074',
|
||||
[CountryIso.BOTSWANA]: '072',
|
||||
[CountryIso.CENTRAL_AFRICAN_REPUBLIC]: '140',
|
||||
[CountryIso.CANADA]: '124',
|
||||
[CountryIso.COCOS_KEELING_ISLANDS]: '166',
|
||||
[CountryIso.SWITZERLAND]: '756',
|
||||
[CountryIso.CHILE]: '152',
|
||||
[CountryIso.CHINA]: '156',
|
||||
[CountryIso.COTE_DIVOIRE]: '384',
|
||||
[CountryIso.CAMEROON]: '120',
|
||||
[CountryIso.CONGO_THE_DEMOCRATIC_REPUBLIC_OF_THE]: '180',
|
||||
[CountryIso.CONGO]: '178',
|
||||
[CountryIso.COOK_ISLANDS]: '184',
|
||||
[CountryIso.COLOMBIA]: '170',
|
||||
[CountryIso.COMOROS]: '174',
|
||||
[CountryIso.CABO_VERDE]: '132',
|
||||
[CountryIso.COSTA_RICA]: '188',
|
||||
[CountryIso.CUBA]: '192',
|
||||
[CountryIso.CURAÇAO]: '531',
|
||||
[CountryIso.CHRISTMAS_ISLAND]: '162',
|
||||
[CountryIso.CAYMAN_ISLANDS]: '136',
|
||||
[CountryIso.CYPRUS]: '196',
|
||||
[CountryIso.CZECHIA]: '203',
|
||||
[CountryIso.GERMANY]: '276',
|
||||
[CountryIso.DJIBOUTI]: '262',
|
||||
[CountryIso.DOMINICA]: '212',
|
||||
[CountryIso.DENMARK]: '208',
|
||||
[CountryIso.DOMINICAN_REPUBLIC]: '214',
|
||||
[CountryIso.ALGERIA]: '012',
|
||||
[CountryIso.ECUADOR]: '218',
|
||||
[CountryIso.EGYPT]: '818',
|
||||
[CountryIso.ERITREA]: '232',
|
||||
[CountryIso.WESTERN_SAHARA]: '732',
|
||||
[CountryIso.SPAIN]: '724',
|
||||
[CountryIso.ESTONIA]: '233',
|
||||
[CountryIso.ETHIOPIA]: '231',
|
||||
[CountryIso.FINLAND]: '246',
|
||||
[CountryIso.FIJI]: '242',
|
||||
[CountryIso.FALKLAND_ISLANDS_MALVINAS]: '238',
|
||||
[CountryIso.FRANCE]: '250',
|
||||
[CountryIso.FAROE_ISLANDS]: '234',
|
||||
[CountryIso.MICRONESIA_FEDERATED_STATES_OF]: '583',
|
||||
[CountryIso.GABON]: '266',
|
||||
[CountryIso.UNITED_KINGDOM]: '826',
|
||||
[CountryIso.GEORGIA]: '268',
|
||||
[CountryIso.GUERNSEY]: '831',
|
||||
[CountryIso.GHANA]: '288',
|
||||
[CountryIso.GIBRALTAR]: '292',
|
||||
[CountryIso.GUINEA]: '324',
|
||||
[CountryIso.GUADELOUPE]: '312',
|
||||
[CountryIso.GAMBIA]: '270',
|
||||
[CountryIso.GUINEA_BISSAU]: '624',
|
||||
[CountryIso.EQUATORIAL_GUINEA]: '226',
|
||||
[CountryIso.GREECE]: '300',
|
||||
[CountryIso.GRENADA]: '308',
|
||||
[CountryIso.GREENLAND]: '304',
|
||||
[CountryIso.GUATEMALA]: '320',
|
||||
[CountryIso.FRENCH_GUIANA]: '254',
|
||||
[CountryIso.GUAM]: '316',
|
||||
[CountryIso.GUYANA]: '328',
|
||||
[CountryIso.HONG_KONG]: '344',
|
||||
[CountryIso.HEARD_ISLAND_AND_MCDONALD_ISLANDS]: '334',
|
||||
[CountryIso.HONDURAS]: '340',
|
||||
[CountryIso.CROATIA]: '191',
|
||||
[CountryIso.HAITI]: '332',
|
||||
[CountryIso.HUNGARY]: '348',
|
||||
[CountryIso.INDONESIA]: '360',
|
||||
[CountryIso.ISLE_OF_MAN]: '833',
|
||||
[CountryIso.INDIA]: '356',
|
||||
[CountryIso.BRITISH_INDIAN_OCEAN_TERRITORY]: '086',
|
||||
[CountryIso.IRELAND]: '372',
|
||||
[CountryIso.IRAN_ISLAMIC_REPUBLIC_OF]: '364',
|
||||
[CountryIso.IRAQ]: '368',
|
||||
[CountryIso.ICELAND]: '352',
|
||||
[CountryIso.ISRAEL]: '376',
|
||||
[CountryIso.ITALY]: '380',
|
||||
[CountryIso.JAMAICA]: '388',
|
||||
[CountryIso.JERSEY]: '832',
|
||||
[CountryIso.JORDAN]: '400',
|
||||
[CountryIso.JAPAN]: '392',
|
||||
[CountryIso.KAZAKHSTAN]: '398',
|
||||
[CountryIso.KENYA]: '404',
|
||||
[CountryIso.KYRGYZSTAN]: '417',
|
||||
[CountryIso.CAMBODIA]: '116',
|
||||
[CountryIso.KIRIBATI]: '296',
|
||||
[CountryIso.SAINT_KITTS_AND_NEVIS]: '659',
|
||||
[CountryIso.KOREA_REPUBLIC_OF]: '410',
|
||||
[CountryIso.KUWAIT]: '414',
|
||||
[CountryIso.LAO_PEOPLES_DEMOCRATIC_REPUBLIC]: '418',
|
||||
[CountryIso.LEBANON]: '422',
|
||||
[CountryIso.LIBERIA]: '430',
|
||||
[CountryIso.LIBYA]: '434',
|
||||
[CountryIso.SAINT_LUCIA]: '662',
|
||||
[CountryIso.LIECHTENSTEIN]: '438',
|
||||
[CountryIso.SRI_LANKA]: '144',
|
||||
[CountryIso.LESOTHO]: '426',
|
||||
[CountryIso.LITHUANIA]: '440',
|
||||
[CountryIso.LUXEMBOURG]: '442',
|
||||
[CountryIso.LATVIA]: '428',
|
||||
[CountryIso.MACAO]: '446',
|
||||
[CountryIso.SAINT_MARTIN_FRENCH_PART]: '663',
|
||||
[CountryIso.MOROCCO]: '504',
|
||||
[CountryIso.MONACO]: '492',
|
||||
[CountryIso.MOLDOVA_REPUBLIC_OF]: '498',
|
||||
[CountryIso.MADAGASCAR]: '450',
|
||||
[CountryIso.MALDIVES]: '462',
|
||||
[CountryIso.MEXICO]: '484',
|
||||
[CountryIso.MARSHALL_ISLANDS]: '584',
|
||||
[CountryIso.NORTH_MACEDONIA]: '807',
|
||||
[CountryIso.MALI]: '466',
|
||||
[CountryIso.MALTA]: '470',
|
||||
[CountryIso.MYANMAR]: '104',
|
||||
[CountryIso.MONTENEGRO]: '499',
|
||||
[CountryIso.MONGOLIA]: '496',
|
||||
[CountryIso.NORTHERN_MARIANA_ISLANDS]: '580',
|
||||
[CountryIso.MOZAMBIQUE]: '508',
|
||||
[CountryIso.MAURITANIA]: '478',
|
||||
[CountryIso.MONTSERRAT]: '500',
|
||||
[CountryIso.MARTINIQUE]: '474',
|
||||
[CountryIso.MAURITIUS]: '480',
|
||||
[CountryIso.MALAWI]: '454',
|
||||
[CountryIso.MALAYSIA]: '458',
|
||||
[CountryIso.MAYOTTE]: '175',
|
||||
[CountryIso.NAMIBIA]: '516',
|
||||
[CountryIso.NEW_CALEDONIA]: '540',
|
||||
[CountryIso.NIGER]: '562',
|
||||
[CountryIso.NORFOLK_ISLAND]: '574',
|
||||
[CountryIso.NIGERIA]: '566',
|
||||
[CountryIso.NICARAGUA]: '558',
|
||||
[CountryIso.NIUE]: '570',
|
||||
[CountryIso.NETHERLANDS]: '528',
|
||||
[CountryIso.NORWAY]: '578',
|
||||
[CountryIso.NEPAL]: '524',
|
||||
[CountryIso.NAURU]: '520',
|
||||
[CountryIso.NEW_ZEALAND]: '554',
|
||||
[CountryIso.OMAN]: '512',
|
||||
[CountryIso.PAKISTAN]: '586',
|
||||
[CountryIso.PANAMA]: '591',
|
||||
[CountryIso.PITCAIRN]: '612',
|
||||
[CountryIso.PERU]: '604',
|
||||
[CountryIso.PHILIPPINES]: '608',
|
||||
[CountryIso.PALAU]: '585',
|
||||
[CountryIso.PAPUA_NEW_GUINEA]: '598',
|
||||
[CountryIso.POLAND]: '616',
|
||||
[CountryIso.PUERTO_RICO]: '630',
|
||||
[CountryIso.KOREA_DEMOCRATIC_PEOPLES_REPUBLIC_OF]: '408',
|
||||
[CountryIso.PORTUGAL]: '620',
|
||||
[CountryIso.PARAGUAY]: '600',
|
||||
[CountryIso.PALESTINE_STATE_OF]: '275',
|
||||
[CountryIso.FRENCH_POLYNESIA]: '258',
|
||||
[CountryIso.QATAR]: '634',
|
||||
[CountryIso.REUNION]: '638',
|
||||
[CountryIso.ROMANIA]: '642',
|
||||
[CountryIso.RUSSIAN_FEDERATION]: '643',
|
||||
[CountryIso.RWANDA]: '646',
|
||||
[CountryIso.SAUDI_ARABIA]: '682',
|
||||
[CountryIso.SUDAN]: '729',
|
||||
[CountryIso.SENEGAL]: '686',
|
||||
[CountryIso.SINGAPORE]: '702',
|
||||
[CountryIso.SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS]: '239',
|
||||
[CountryIso.SAINT_HELENA_ASCENSION_AND_TRISTAN_DA_CUNHA]: '654',
|
||||
[CountryIso.SVALBARD_AND_JAN_MAYEN]: '744',
|
||||
[CountryIso.SOLOMON_ISLANDS]: '090',
|
||||
[CountryIso.SIERRA_LEONE]: '694',
|
||||
[CountryIso.EL_SALVADOR]: '222',
|
||||
[CountryIso.SAN_MARINO]: '674',
|
||||
[CountryIso.SOMALIA]: '706',
|
||||
[CountryIso.SAINT_PIERRE_AND_MIQUELON]: '666',
|
||||
[CountryIso.SERBIA]: '688',
|
||||
[CountryIso.SOUTH_SUDAN]: '728',
|
||||
[CountryIso.SAO_TOME_AND_PRINCIPE]: '678',
|
||||
[CountryIso.SURINAME]: '740',
|
||||
[CountryIso.SLOVAKIA]: '703',
|
||||
[CountryIso.SLOVENIA]: '705',
|
||||
[CountryIso.SWEDEN]: '752',
|
||||
[CountryIso.ESWATINI]: '748',
|
||||
[CountryIso.SINT_MAARTEN_DUTCH_PART]: '534',
|
||||
[CountryIso.SEYCHELLES]: '690',
|
||||
[CountryIso.SYRIAN_ARAB_REPUBLIC]: '760',
|
||||
[CountryIso.TURKS_AND_CAICOS_ISLANDS]: '796',
|
||||
[CountryIso.CHAD]: '148',
|
||||
[CountryIso.TOGO]: '768',
|
||||
[CountryIso.THAILAND]: '764',
|
||||
[CountryIso.TAJIKISTAN]: '762',
|
||||
[CountryIso.TOKELAU]: '772',
|
||||
[CountryIso.TURKMENISTAN]: '795',
|
||||
[CountryIso.TIMOR_LESTE]: '626',
|
||||
[CountryIso.TONGA]: '776',
|
||||
[CountryIso.TRINIDAD_AND_TOBAGO]: '780',
|
||||
[CountryIso.TUNISIA]: '788',
|
||||
[CountryIso.TURKEY]: '792',
|
||||
[CountryIso.TUVALU]: '798',
|
||||
[CountryIso.TAIWAN_PROVINCE_OF_CHINA]: '158',
|
||||
[CountryIso.TANZANIA_UNITED_REPUBLIC_OF]: '834',
|
||||
[CountryIso.UGANDA]: '800',
|
||||
[CountryIso.UKRAINE]: '804',
|
||||
[CountryIso.UNITED_STATES_MINOR_OUTLYING_ISLANDS]: '581',
|
||||
[CountryIso.URUGUAY]: '858',
|
||||
[CountryIso.UNITED_STATES]: '840',
|
||||
[CountryIso.UZBEKISTAN]: '860',
|
||||
[CountryIso.HOLY_SEE_VATICAN_CITY_STATE]: '336',
|
||||
[CountryIso.SAINT_VINCENT_AND_THE_GRENADINES]: '670',
|
||||
[CountryIso.VENEZUELA_BOLIVARIAN_REPUBLIC_OF]: '862',
|
||||
[CountryIso.VIRGIN_ISLANDS_BRITISH]: '092',
|
||||
[CountryIso.VIRGIN_ISLANDS_US]: '850',
|
||||
[CountryIso.VIET_NAM]: '704',
|
||||
[CountryIso.VANUATU]: '548',
|
||||
[CountryIso.WALLIS_AND_FUTUNA]: '876',
|
||||
[CountryIso.SAMOA]: '882',
|
||||
[CountryIso.YEMEN]: '887',
|
||||
[CountryIso.SOUTH_AFRICA]: '710',
|
||||
[CountryIso.ZAMBIA]: '894',
|
||||
[CountryIso.ZIMBABWE]: '716',
|
||||
};
|
@ -1 +1,2 @@
|
||||
export * from './countries-numeric-iso.constant';
|
||||
export * from './global.constant';
|
||||
|
251
src/common/enums/countries-iso.enum.ts
Normal file
251
src/common/enums/countries-iso.enum.ts
Normal file
@ -0,0 +1,251 @@
|
||||
export enum CountryIso {
|
||||
ARUBA = 'AW',
|
||||
AFGHANISTAN = 'AF',
|
||||
ANGOLA = 'AO',
|
||||
ANGUILLA = 'AI',
|
||||
ALAND_ISLANDS = 'AX',
|
||||
ALBANIA = 'AL',
|
||||
ANDORRA = 'AD',
|
||||
UNITED_ARAB_EMIRATES = 'AE',
|
||||
ARGENTINA = 'AR',
|
||||
ARMENIA = 'AM',
|
||||
AMERICAN_SAMOA = 'AS',
|
||||
ANTARCTICA = 'AQ',
|
||||
FRENCH_SOUTHERN_TERRITORIES = 'TF',
|
||||
ANTIGUA_AND_BARBUDA = 'AG',
|
||||
AUSTRALIA = 'AU',
|
||||
AUSTRIA = 'AT',
|
||||
AZERBAIJAN = 'AZ',
|
||||
BURUNDI = 'BI',
|
||||
BELGIUM = 'BE',
|
||||
BENIN = 'BJ',
|
||||
BONAIRE_SINT_EUSTATIUS_AND_SABA = 'BQ',
|
||||
BURKINA_FASO = 'BF',
|
||||
BANGLADESH = 'BD',
|
||||
BULGARIA = 'BG',
|
||||
BAHRAIN = 'BH',
|
||||
BAHAMAS = 'BS',
|
||||
BOSNIA_AND_HERZEGOVINA = 'BA',
|
||||
SAINT_BARTHÉLEMY = 'BL',
|
||||
BELARUS = 'BY',
|
||||
BELIZE = 'BZ',
|
||||
BERMUDA = 'BM',
|
||||
BOLIVIA_PLURINATIONAL_STATE_OF = 'BO',
|
||||
BRAZIL = 'BR',
|
||||
BARBADOS = 'BB',
|
||||
BRUNEI_DARUSSALAM = 'BN',
|
||||
BHUTAN = 'BT',
|
||||
BOUVET_ISLAND = 'BV',
|
||||
BOTSWANA = 'BW',
|
||||
CENTRAL_AFRICAN_REPUBLIC = 'CF',
|
||||
CANADA = 'CA',
|
||||
COCOS_KEELING_ISLANDS = 'CC',
|
||||
SWITZERLAND = 'CH',
|
||||
CHILE = 'CL',
|
||||
CHINA = 'CN',
|
||||
COTE_DIVOIRE = 'CI',
|
||||
CAMEROON = 'CM',
|
||||
CONGO_THE_DEMOCRATIC_REPUBLIC_OF_THE = 'CD',
|
||||
CONGO = 'CG',
|
||||
COOK_ISLANDS = 'CK',
|
||||
COLOMBIA = 'CO',
|
||||
COMOROS = 'KM',
|
||||
CABO_VERDE = 'CV',
|
||||
COSTA_RICA = 'CR',
|
||||
CUBA = 'CU',
|
||||
CURAÇAO = 'CW',
|
||||
CHRISTMAS_ISLAND = 'CX',
|
||||
CAYMAN_ISLANDS = 'KY',
|
||||
CYPRUS = 'CY',
|
||||
CZECHIA = 'CZ',
|
||||
GERMANY = 'DE',
|
||||
DJIBOUTI = 'DJ',
|
||||
DOMINICA = 'DM',
|
||||
DENMARK = 'DK',
|
||||
DOMINICAN_REPUBLIC = 'DO',
|
||||
ALGERIA = 'DZ',
|
||||
ECUADOR = 'EC',
|
||||
EGYPT = 'EG',
|
||||
ERITREA = 'ER',
|
||||
WESTERN_SAHARA = 'EH',
|
||||
SPAIN = 'ES',
|
||||
ESTONIA = 'EE',
|
||||
ETHIOPIA = 'ET',
|
||||
FINLAND = 'FI',
|
||||
FIJI = 'FJ',
|
||||
FALKLAND_ISLANDS_MALVINAS = 'FK',
|
||||
FRANCE = 'FR',
|
||||
FAROE_ISLANDS = 'FO',
|
||||
MICRONESIA_FEDERATED_STATES_OF = 'FM',
|
||||
GABON = 'GA',
|
||||
UNITED_KINGDOM = 'GB',
|
||||
GEORGIA = 'GE',
|
||||
GUERNSEY = 'GG',
|
||||
GHANA = 'GH',
|
||||
GIBRALTAR = 'GI',
|
||||
GUINEA = 'GN',
|
||||
GUADELOUPE = 'GP',
|
||||
GAMBIA = 'GM',
|
||||
GUINEA_BISSAU = 'GW',
|
||||
EQUATORIAL_GUINEA = 'GQ',
|
||||
GREECE = 'GR',
|
||||
GRENADA = 'GD',
|
||||
GREENLAND = 'GL',
|
||||
GUATEMALA = 'GT',
|
||||
FRENCH_GUIANA = 'GF',
|
||||
GUAM = 'GU',
|
||||
GUYANA = 'GY',
|
||||
HONG_KONG = 'HK',
|
||||
HEARD_ISLAND_AND_MCDONALD_ISLANDS = 'HM',
|
||||
HONDURAS = 'HN',
|
||||
CROATIA = 'HR',
|
||||
HAITI = 'HT',
|
||||
HUNGARY = 'HU',
|
||||
INDONESIA = 'ID',
|
||||
ISLE_OF_MAN = 'IM',
|
||||
INDIA = 'IN',
|
||||
BRITISH_INDIAN_OCEAN_TERRITORY = 'IO',
|
||||
IRELAND = 'IE',
|
||||
IRAN_ISLAMIC_REPUBLIC_OF = 'IR',
|
||||
IRAQ = 'IQ',
|
||||
ICELAND = 'IS',
|
||||
ISRAEL = 'IL',
|
||||
ITALY = 'IT',
|
||||
JAMAICA = 'JM',
|
||||
JERSEY = 'JE',
|
||||
JORDAN = 'JO',
|
||||
JAPAN = 'JP',
|
||||
KAZAKHSTAN = 'KZ',
|
||||
KENYA = 'KE',
|
||||
KYRGYZSTAN = 'KG',
|
||||
CAMBODIA = 'KH',
|
||||
KIRIBATI = 'KI',
|
||||
SAINT_KITTS_AND_NEVIS = 'KN',
|
||||
KOREA_REPUBLIC_OF = 'KR',
|
||||
KUWAIT = 'KW',
|
||||
LAO_PEOPLES_DEMOCRATIC_REPUBLIC = 'LA',
|
||||
LEBANON = 'LB',
|
||||
LIBERIA = 'LR',
|
||||
LIBYA = 'LY',
|
||||
SAINT_LUCIA = 'LC',
|
||||
LIECHTENSTEIN = 'LI',
|
||||
SRI_LANKA = 'LK',
|
||||
LESOTHO = 'LS',
|
||||
LITHUANIA = 'LT',
|
||||
LUXEMBOURG = 'LU',
|
||||
LATVIA = 'LV',
|
||||
MACAO = 'MO',
|
||||
SAINT_MARTIN_FRENCH_PART = 'MF',
|
||||
MOROCCO = 'MA',
|
||||
MONACO = 'MC',
|
||||
MOLDOVA_REPUBLIC_OF = 'MD',
|
||||
MADAGASCAR = 'MG',
|
||||
MALDIVES = 'MV',
|
||||
MEXICO = 'MX',
|
||||
MARSHALL_ISLANDS = 'MH',
|
||||
NORTH_MACEDONIA = 'MK',
|
||||
MALI = 'ML',
|
||||
MALTA = 'MT',
|
||||
MYANMAR = 'MM',
|
||||
MONTENEGRO = 'ME',
|
||||
MONGOLIA = 'MN',
|
||||
NORTHERN_MARIANA_ISLANDS = 'MP',
|
||||
MOZAMBIQUE = 'MZ',
|
||||
MAURITANIA = 'MR',
|
||||
MONTSERRAT = 'MS',
|
||||
MARTINIQUE = 'MQ',
|
||||
MAURITIUS = 'MU',
|
||||
MALAWI = 'MW',
|
||||
MALAYSIA = 'MY',
|
||||
MAYOTTE = 'YT',
|
||||
NAMIBIA = 'NA',
|
||||
NEW_CALEDONIA = 'NC',
|
||||
NIGER = 'NE',
|
||||
NORFOLK_ISLAND = 'NF',
|
||||
NIGERIA = 'NG',
|
||||
NICARAGUA = 'NI',
|
||||
NIUE = 'NU',
|
||||
NETHERLANDS = 'NL',
|
||||
NORWAY = 'NO',
|
||||
NEPAL = 'NP',
|
||||
NAURU = 'NR',
|
||||
NEW_ZEALAND = 'NZ',
|
||||
OMAN = 'OM',
|
||||
PAKISTAN = 'PK',
|
||||
PANAMA = 'PA',
|
||||
PITCAIRN = 'PN',
|
||||
PERU = 'PE',
|
||||
PHILIPPINES = 'PH',
|
||||
PALAU = 'PW',
|
||||
PAPUA_NEW_GUINEA = 'PG',
|
||||
POLAND = 'PL',
|
||||
PUERTO_RICO = 'PR',
|
||||
KOREA_DEMOCRATIC_PEOPLES_REPUBLIC_OF = 'KP',
|
||||
PORTUGAL = 'PT',
|
||||
PARAGUAY = 'PY',
|
||||
PALESTINE_STATE_OF = 'PS',
|
||||
FRENCH_POLYNESIA = 'PF',
|
||||
QATAR = 'QA',
|
||||
REUNION = 'RE',
|
||||
ROMANIA = 'RO',
|
||||
RUSSIAN_FEDERATION = 'RU',
|
||||
RWANDA = 'RW',
|
||||
SAUDI_ARABIA = 'SA',
|
||||
SUDAN = 'SD',
|
||||
SENEGAL = 'SN',
|
||||
SINGAPORE = 'SG',
|
||||
SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS = 'GS',
|
||||
SAINT_HELENA_ASCENSION_AND_TRISTAN_DA_CUNHA = 'SH',
|
||||
SVALBARD_AND_JAN_MAYEN = 'SJ',
|
||||
SOLOMON_ISLANDS = 'SB',
|
||||
SIERRA_LEONE = 'SL',
|
||||
EL_SALVADOR = 'SV',
|
||||
SAN_MARINO = 'SM',
|
||||
SOMALIA = 'SO',
|
||||
SAINT_PIERRE_AND_MIQUELON = 'PM',
|
||||
SERBIA = 'RS',
|
||||
SOUTH_SUDAN = 'SS',
|
||||
SAO_TOME_AND_PRINCIPE = 'ST',
|
||||
SURINAME = 'SR',
|
||||
SLOVAKIA = 'SK',
|
||||
SLOVENIA = 'SI',
|
||||
SWEDEN = 'SE',
|
||||
ESWATINI = 'SZ',
|
||||
SINT_MAARTEN_DUTCH_PART = 'SX',
|
||||
SEYCHELLES = 'SC',
|
||||
SYRIAN_ARAB_REPUBLIC = 'SY',
|
||||
TURKS_AND_CAICOS_ISLANDS = 'TC',
|
||||
CHAD = 'TD',
|
||||
TOGO = 'TG',
|
||||
THAILAND = 'TH',
|
||||
TAJIKISTAN = 'TJ',
|
||||
TOKELAU = 'TK',
|
||||
TURKMENISTAN = 'TM',
|
||||
TIMOR_LESTE = 'TL',
|
||||
TONGA = 'TO',
|
||||
TRINIDAD_AND_TOBAGO = 'TT',
|
||||
TUNISIA = 'TN',
|
||||
TURKEY = 'TR',
|
||||
TUVALU = 'TV',
|
||||
TAIWAN_PROVINCE_OF_CHINA = 'TW',
|
||||
TANZANIA_UNITED_REPUBLIC_OF = 'TZ',
|
||||
UGANDA = 'UG',
|
||||
UKRAINE = 'UA',
|
||||
UNITED_STATES_MINOR_OUTLYING_ISLANDS = 'UM',
|
||||
URUGUAY = 'UY',
|
||||
UNITED_STATES = 'US',
|
||||
UZBEKISTAN = 'UZ',
|
||||
HOLY_SEE_VATICAN_CITY_STATE = 'VA',
|
||||
SAINT_VINCENT_AND_THE_GRENADINES = 'VC',
|
||||
VENEZUELA_BOLIVARIAN_REPUBLIC_OF = 'VE',
|
||||
VIRGIN_ISLANDS_BRITISH = 'VG',
|
||||
VIRGIN_ISLANDS_US = 'VI',
|
||||
VIET_NAM = 'VN',
|
||||
VANUATU = 'VU',
|
||||
WALLIS_AND_FUTUNA = 'WF',
|
||||
SAMOA = 'WS',
|
||||
YEMEN = 'YE',
|
||||
SOUTH_AFRICA = 'ZA',
|
||||
ZAMBIA = 'ZM',
|
||||
ZIMBABWE = 'ZW',
|
||||
}
|
1
src/common/enums/index.ts
Normal file
1
src/common/enums/index.ts
Normal file
@ -0,0 +1 @@
|
||||
export * from './countries-iso.enum';
|
@ -1,6 +1,7 @@
|
||||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { IsBoolean, IsDateString, IsEnum, IsNotEmpty, IsOptional, IsString, IsUUID } from 'class-validator';
|
||||
import { i18nValidationMessage as i18n } from 'nestjs-i18n';
|
||||
import { CountryIso } from '~/common/enums';
|
||||
import { IsAbove18 } from '~/core/decorators/validations';
|
||||
import { Gender } from '~/customer/enums';
|
||||
export class CreateCustomerRequestDto {
|
||||
@ -20,9 +21,10 @@ export class CreateCustomerRequestDto {
|
||||
gender?: Gender;
|
||||
|
||||
@ApiProperty({ example: 'JO' })
|
||||
@IsString({ message: i18n('validation.IsString', { path: 'general', property: 'customer.countryOfResidence' }) })
|
||||
@IsNotEmpty({ message: i18n('validation.IsNotEmpty', { path: 'general', property: 'customer.countryOfResidence' }) })
|
||||
countryOfResidence!: string;
|
||||
@IsEnum(CountryIso, {
|
||||
message: i18n('validation.IsEnum', { path: 'general', property: 'customer.countryOfResidence' }),
|
||||
})
|
||||
countryOfResidence!: CountryIso;
|
||||
|
||||
@ApiProperty({ example: '2021-01-01' })
|
||||
@IsDateString({}, { message: i18n('validation.IsDateString', { path: 'general', property: 'customer.dateOfBirth' }) })
|
||||
|
@ -29,6 +29,7 @@ export class CustomerRepository {
|
||||
firstName: body.firstName,
|
||||
lastName: body.lastName,
|
||||
dateOfBirth: body.dateOfBirth,
|
||||
countryOfResidence: body.countryOfResidence,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user