import type { LocaleConfig } from '../types';

export const nl: LocaleConfig = {
  locale: 'nl',
  name: 'Dutch',
  scripts: ['latn'],
  countries: ['NL', 'BE'],
  phoneContextKeywords: [
    'telefoonnummer',
    'telefoon',
    'mobiel',
    'nummer',
    'gsm',
    'tel.',
    'tel',
  ],
  cvcContextKeywords: [
    'beveiligingscode',
    'veiligheidscode',
    'cvc',
    'cvv',
    'cv2',
  ],
  address: {
    forms: ['glued-suffix', 'standalone-suffix', 'po-box'],
    postcodeForm: 'nl',
    postcodeRegex: '\\d{4}\\s?[A-Z]{2}',
    streetSuffixGlued: [
      'straat',
      'laan',
      'weg',
      'plein',
      'gracht',
      'kade',
      'dijk',
      'singel',
      'park',
      'hof',
    ],
    streetKeywordsFreeSuffix: ['plein', 'park', 'hof', 'singel', 'gracht'],
    poBoxKeywords: ['Postbus', 'Antwoordnummer'],
    floorKeywords: ['verdieping', 'etage', 'kamer', 'appartement', 'app.'],
    countryNames: [
      'Nederland',
      'Netherlands',
      'België',
      'Belgium',
      'Belgique',
      'NL',
      'BE',
    ],
    houseNumberMarkers: ['nr.', 'nr', 'no.'],
    countryPostcodePrefixes: [],
    requireUppercase: true,
  },
  nationalIds: [
    {
      id: 'nl-bsn',
      name: 'Dutch BSN',
      pattern: '\\b\\d{9}\\b',
      checksum: 'mod11-bsn',
      replacement: '[BSN]',
    },
    {
      id: 'nl-passport',
      name: 'Dutch Passport Number',
      pattern: '\\b[A-Z]{2}[A-Z0-9]{6}\\d\\b',
      replacement: '[PASSPORT]',
    },
  ],
  dateOfBirth: {
    monthsLong: [
      'januari',
      'februari',
      'maart',
      'april',
      'mei',
      'juni',
      'juli',
      'augustus',
      'september',
      'oktober',
      'november',
      'december',
    ],
    monthsShort: [
      'jan.',
      'feb.',
      'mrt.',
      'apr.',
      'mei',
      'jun.',
      'jul.',
      'aug.',
      'sep.',
      'okt.',
      'nov.',
      'dec.',
    ],
    contextKeywords: ['geboren op', 'geboortedatum', 'geb.'],
  },
};
