Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const dateString = yup.string().default(null).nullable()
  2. const latinString = yup.string().matches(/^[a-z A-Z()0-9.,-]+$/, 'Please use Latin characters only')
  3.  
  4. // Step 1
  5. const BASIC_INFORMATION = yup.object().shape({
  6.   merchantName: latinString.required('Required field'),
  7.   dbaName: latinString,
  8.   residentStatus: yup.string().required('Required field'),
  9.   merchantRegistrationNumber: latinString.required('Required field'),
  10.   registrationDate: dateString
  11.     .test(
  12.       'afterCurrentDate',
  13.       'Registration date must be no later than the current date',
  14.       date => !isFuture(new Date(formatDate(date))),
  15.     )
  16.     .required('Required field'),
  17.   countryRegistered: yup.string().required('Required field'),
  18.   businessLicenceNumber: latinString,
  19.   expireDate: dateString
  20.     .test(
  21.       'beforeCurrentDate',
  22.       'Expire date must be no earlier than the current date',
  23.       date => !isPast(new Date(formatDate(date))),
  24.     ),
  25.   issueDate: dateString
  26.     .test(
  27.       'afterCurrentDate',
  28.       'Issue date must be no later than the current date',
  29.       date => !isFuture(new Date(formatDate(date))),
  30.     ),
  31.   issuingAuthority: latinString,
  32.   vatNumber: latinString.required('Required field'),
  33.   vatCountry: yup.string().required('Required field'),
  34.   mccCode: latinString
  35.     .min(4, 'MCC Code must be at least 4 characters')
  36.     .max(4, 'MCC Code must be at most 4 characters')
  37.     .required('Required field'),
  38.   merchantType: yup.string().required('Required field'),
  39.   registeredAddress: latinString.required('Required field'),
  40.   businessAddress: latinString.required('Required field'),
  41.   merchantWebsite: latinString.required('Required field'),
  42.   merchantPhone: yup.string().required('Required field'),
  43.   merchantEmail: yup.string()
  44.     .required('Required field')
  45.     .email('Merchant email must be a valid email'),
  46.   notificationEmails: yup.string()
  47.     .required('Required field')
  48.     .email('Merchant email must be a valid email'),
  49. })
  50.  
  51. // Step 2
  52. const CONTACT_PERSON = yup.object().shape({
  53.   firstName: latinString.required('Required field'),
  54.   lastName: latinString.required('Required field'),
  55.   position: latinString.required('Required field'),
  56.   phone: yup.string().required('Required field'),
  57.   email: yup.string()
  58.     .required('Required field')
  59.     .email('Email must be a valid email'),
  60.   skype: latinString,
  61. })
  62.  
  63. // Step 3
  64. const PORTAL_ADMINISTRATOR = yup.object().shape({
  65.   firstName: latinString.required('Required field'),
  66.   lastName: latinString.required('Required field'),
  67.   phone: yup.string().required('Required field'),
  68.   email: yup.string()
  69.     .required('Required field')
  70.     .email('Email must be a valid email'),
  71.   skype: latinString,
  72. })
  73.  
  74. // Step 4
  75. const FINANCIAL_INFORMATION = yup.object().shape({
  76.   activity: latinString.required('Required field'),
  77.   domainName: latinString.required('Required field'),
  78.   website: latinString.required('Required field'),
  79.   startUp: yup.string(),
  80.   operationYears: latinString.required('Required field'),
  81.   priceRange: latinString.required('Required field'),
  82.   averageTransactionAmount: latinString.required('Required field'),
  83.   monthlyTurnover: latinString.required('Required field'),
  84.   customerService: latinString.required('Required field'),
  85.   countries: latinString.required('Required field'),
  86.   partners: latinString.required('Required field'),
  87.   transactionsNature: latinString.required('Required field'),
  88.   paymentsDestination: latinString.required('Required field'),
  89.   sourceOfWealth: latinString.required('Required field'),
  90. })
  91.  
  92. // Step 5
  93. const MERCHANT_BANK_ACCOUNT_DETAILS = yup.object().shape({
  94.   name: latinString.required('Required field'),
  95.   holderAddress: latinString,
  96.   bankName: latinString.required('Required field'),
  97.   bankAddress: latinString.required('Required field'),
  98.   accountNumber: latinString.required('Required field'),
  99.   ibanNumber: latinString.required('Required field'),
  100.   bicCode: latinString.required('Required field'),
  101.   currency: latinString.required('Required field'),
  102. })
  103.  
  104. // Step 6
  105. const OWNERSHIP_AND_MANAGEMENT_INFORMATION = yup.array()
  106.   .of(
  107.     yup.object().shape({
  108.       relativesPolitical: yup.string().required('Required field'),
  109.       relativesPoliticalSpecifyWhy: latinString
  110.         .when(['relativesPolitical'], {
  111.           is: 'yes',
  112.           then: yup.string().required('Required field'),
  113.         }),
  114.       firstName: latinString.required('Required field'),
  115.       lastName: latinString.required('Required field'),
  116.       dateOfBirth: dateString.required('Required field'),
  117.       passport: latinString.required('Required field'),
  118.       telephone: yup.string().required('Required field'),
  119.       email: yup.string()
  120.         .required('Required field')
  121.         .email('Email must be a valid email'),
  122.       role: yup.string().required('Required field'),
  123.     }),
  124.   )
  125.  
  126. // Step 7
  127. const AUTHORIZED_PERSON = yup.array()
  128.   .of(
  129.     yup.object().shape({
  130.       relativesPolitical: yup.string().required('Required field'),
  131.       relativesPoliticalSpecifyWhy: latinString
  132.         .when(['relativesPolitical'], {
  133.           is: 'yes',
  134.           then: yup.string().required('Required field'),
  135.         }),
  136.       firstName: latinString.required('Required field'),
  137.       lastName: latinString.required('Required field'),
  138.       birthDate: dateString.required('Required field'),
  139.       passport: latinString.required('Required field'),
  140.       signatoryRights: latinString,
  141.     }),
  142.   )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement