# frozen_string_literal: true

# Set-up mock data for what we get back from:
# a) the Google parser
# b) the data we get when reading the generated PDF

# NOTE: This is slightly difficult to maintain as this requires updating mock data everytime we want to add different field types

RSpec.shared_context 'pdf_parser_data_setup' do
  # Set-up project and phase
  let_it_be(:survey_project) { create(:single_phase_native_survey_project) }
  let_it_be(:survey_phase) { survey_project.phases.first }

  # Mock data - based on actual data returned from the Google parser / PDF reader - some looks good, some does not
  # Data is based on the following scanned survey: spec/fixtures/html_pdf_example_scan.pdf
  # Form, fields and options do not need to be set up as we are mocking pdf_template_data which already has the data it needs from the custom form

  let_it_be(:google_raw_text_array) do
    [
      "go\nvocal\nFormerly\nCitizenLab\nWelcome to our survey\nFill it in as honestly as you can. We've customised this introduction - so please:\n1. Don't lie\n2. Be nice\nPersonal data\nWe will submit your input to Abshireville's online participation platform. If you want to\nreceive updates relevant to your input by email, please fill out the following fields on\nthis page and we will create an account for you. Your data will not be public and will\nonly be used by Abshireville. If you do not agree for us to use your personal data in this\nway, you can leave them empty.\nFirst name(s) (optional)\nJames\nLast name (optional)\nSmith\nEmail address (optional)\nJames @monkey.org\nBy checking this box I consent to my data being used to create an account on\nAbshireville's participation platform.\nPage 1\n",
      "This is a page title\nAnd here is the description of it. These appear as section dividers and not new pages in\nthe printed form.\n1. Your question (optional)\n& Option 1\n○ Option 2\n2. This is a short answer (optional)\nI really like Short\nanswers\n3. This is a long answer (optional)\nInstructions\n• Put whatever you want here\nI'm\nThey\nnot so\nmuch longer\nKeen\nол\nanswers.\nLong\nto\ntake\nFill in\nThis is another page title\nBut this is just a section in the printed version, not a single page.\n4. Linear scale field (optional)\nWith a description....\nPlease write a number between 1 and 5 only\n1\n5. Another linear scale - no description (optional)\nPlease write a number between 1 (Totally worst) and 7 (Absolute best) only\n2\nPage 2\n",
      "6. Multiple choice (optional)\n*Choose as many as you like\n☐ this one\n☑ another option you might like more\n☑ something else\nIf 'something else', please specify\nI cannot\nmake up my\nmy mind\n7. Image choice (optional)\n*Choose between 2 and 4 options\n☐ Choose Marge\n☐ Choose bart\n☑ Choose homer\nPO\nG\n☐ All the Simpsons\n☐ Choose Lisa\n☑ Choose Maggie\n☑ Other\nIf 'Other', please specify\nSeymour\nPage 3\n",
      "8. Ranking question (optional)\nPlease write a number from 1 (most preferred) and 3 (least preferred) in each\nbox. Use each number only once.\n2 First one\n1 Another one\n3 Choose this one\n9. Rating question (optional)\nRate this by writing a number between 1 (worst) and 5 (best).\n3\n10. Sentiment scale question (optional)\nPlease write a number between 1 and 5.\n1 = Very bad, 3 = Ok, 5 = Very good.\n5\n11. Matrix question (optional)\nFor each row, mark one circle with a cross to indicate your preference.\nStrongly\nStrongly\ndisagree\nDisagree Neutral\nAgree\nagree\nI like stuff\n0\n&\nO\n0\nI like nonsense\n0\n0\ns\n0\n0\nI like nothing, but I do\nlike really long\nstatements as they\nare the best!\n0\nO\n0\nØ\n0\n12. File upload field (optional)\nThis field cannot be completed on paper. Please use the online version of this\nform instead.\n13. Number field (optional)\n283\nPage 4\n",
      "Mapping page\nAll the questions in this section relate to the following map.\nHIGH\n無用銀行:\nmang\nMYLOR \nROAD\nmares殊是問題\n080\nT\nの場\nGISB\na\n92%\nANSELL ROAD\nHIGHCLIFFE ROAD\nte\ng\nDOBBIN HILLDOPPIN\n*\nFALKLAND ROAD\nNEE.\nHIGH STORRS ROAD\nS\nM\n70\nEDALE ROAD\nBRA\nRINGINGLOW ROA\nmm\nawwa\nB\nmegy on\nR\npu\nWoman wRINGINGLOW \nROAD\n4\n麵類蜜集 衛\n#\nSA\n8\nHOOBER\n845\nRINGINGLOW ROAD\nMapTiler OpenStreetMap contributors\n14. Drop pin question (optional)\nPlease do something with this map\nPlease draw an X on the map below to show the location or write the address\ninstead.\nRue de\n10\nFromage\nWoluwe-Sair\nLambert-Si\nLambrechts\nWoluwe\nDilbeek\nBruxelles Brussel\nItterbeek\nAnderlecht\nEtterbeek\nIxelles\nElsene\ntrudis-\nle\nSaint-Gilles\n-Sint-Gillis\nAa\n☑\nAuderghei\n-Ouderge\nSobroek\nForest-Vorst\nVlezenbeek\nNegenmanneke\nUccle - Ukkel\nWatermael-\nBoitsfort-\nWatermaal-\nBosvoorde\nZuun\nRuisbroek\nSint-Pieters-\nLeeuw\nLinkebeek\nMapTiler OpenStreetMap contributors.\nBeersel\nPage 5\n",
      "15. Draw route question (optional)\nDraw sometning\nPlease draw a route on the map below.\nEvere\nGanshoren\nSchaerbeek-\nSchaarbeek\nem-\ngathe\ngatha-\nem\nKoekelberg\nMolenbeek-\nSaint-Jean\n-Sint-Jans-\nMolenbeek\nSaint-Josse-\nten-Noode\n-Sint-Joost-\nten-Node\nBruxelles- Brussel\nAnderlecht\nEtterbeek\nIxelles-\nElsene\nMapTiler OpenStreetMap contributors\n16. Draw area question (optional)\nDraw an area please\nPlease draw a shape on the map below.\nEvere\nGanshoren\nem-\nSchaerbeek-\nSchaarbeek\ngathe\njatha-\nem\nKoekelberg\nt\nMolenbeek-\nMolenbeek\nSaint-Josse-\nten-Noode\n-Sint-Joost-\nten-Node\nBruxelles- Brussel\nAnderlecht\nEtterbeek\nIxelles-\nElsene\nMapTiler OpenStreetMap contributors\nPage 6\n",
      "About you\n17. Gender (optional)\n☑ Male\n○ Female\nOther\n18. Year of birth (optional)\n1976\n19. Are you a politician? (optional)\nWe use this to provide you with customized information\nO Active politician\n☑ Retired politician\nO No\n20. Place of residence (optional)\nO Herbland\nWest Horacio\nO West Rexberg\n○ Murielport\nO Candiestad\nO North Hisakoland\n○ Boehmshire\n☑ Oscarburgh\nO Jonathanfort\nRoweview\n○ East Jackelineport\n○ North Reyberg\n○ Westbrook\nO Somewhere else\nThanks for filling in this printed survey\nWe will use your answers to make wise decisions.\n.\nPage 7\n"
    ]
  end

  let_it_be(:raw_text_parsed_idea) do
    {
      pdf_pages: [1, 2, 3, 4, 5, 6, 7],
      fields: {
        'Your question' => 'Option 1',
        'This is a short answer' => 'I really like Short answers',
        'This is a long answer' => "I'm They not so much longer Keen ол answers. Long to take Fill in",
        'Linear scale field' => 1,
        'Another linear scale - no description' => 2,
        'Multiple choice' => ['another option you might like more', 'something else'],
        "If 'something else', please specify" => 'I cannot make up my my mind 7.',
        'Image choice' => ['Choose homer', 'Choose Maggie', 'Other'],
        "If 'Other', please specify" => 'Seymour 8.',
        'Rating question' => 3,
        'Sentiment scale question' => 5,
        'Number field' => 283,
        'Gender' => 'Male',
        'Year of birth' => 1976,
        'Are you a politician?' => 'Retired politician',
        'Place of residence' => 'Oscarburgh'
      }
    }
  end

  let_it_be(:google_form_parsed_idea) do
    {
      pdf_pages: [1, 2, 3, 4, 6, 7],
      fields: {
        'First name(s) (optional)' => 'James',
        'Last name (optional)' => 'Smith',
        'Email address (optional)' => 'James @monkey.org',
        'Your question' => '& Option 1 ○ Option 2',
        'This is a short answer' => 'I really like Short answers',
        'This is a long answer' => 'Instructions',
        '• Put whatever you want here' => "Keen ол answers. I'm They not so much longer Long to take Fill in",
        'Please write a number between 1 and 5 only' => '4. Linear scale field (optional) With a description.... 1',
        '5. Another linear scale - no description (optional) Please write a number between 1 (Totally worst) and 7 (Absolute best) only' => '1',
        'this one_3.3.12' => 'unfilled_checkbox',
        'another option you might like more_3.3.14' => 'filled_checkbox',
        'something else_3.3.16' => 'filled_checkbox',
        "If 'something else', please specify" => 'I cannot make up my my mind',
        'Choose Marge_3.3.46' => 'unfilled_checkbox',
        'Choose bart_3.3.46' => 'unfilled_checkbox',
        'Choose homer_3.3.46' => 'filled_checkbox',
        'All the Simpsons_3.3.62' => 'unfilled_checkbox',
        'Choose Lisa_3.3.62' => 'unfilled_checkbox',
        'Choose Maggie_3.3.62' => 'filled_checkbox',
        'Other_3.3.78' => 'filled_checkbox',
        "If 'Other', please specify" => 'Seymour',
        'Rate this by writing a number between 1 (worst) and 5 (best).' => '9. Rating question (optional) 3',
        'Sentiment scale question' => 'Please write a number between 1 and 5. 1 = Very bad, 3 = Ok, 5 = Very good. 5',
        'Number field' => '283',
        'Schaerbeek--' => 'Schaarbeek',
        'Ixelles--' => 'Elsene',
        'Year of birth' => '1976',
        'Active politician_6.7.34' => 'unfilled_checkbox',
        'Retired politician_6.7.36' => 'filled_checkbox'
      }
    }
  end

  let_it_be(:pdf_template_text) do
    [['Welcome to our survey',
      '',
      "Fill it in as honestly as you can. We've customised this introduction - so please:",
      '',
      "   1. Don't lie",
      '   2. Be nice',
      '',
      '',
      'Personal data',
      '',
      "We will submit your input to Abshireville's online participation platform. If you want to",
      'receive updates relevant to your input by email, please fill out the following fields on',
      'this page and we will create an account for you. Your data will not be public and will',
      'only be used by Abshireville. If you do not agree for us to use your personal data in this',
      'way, you can leave them empty.',
      '',
      '',
      'First name(s) (optional)',
      '',
      '',
      '',
      'Last name (optional)',
      '',
      '',
      '',
      '',
      'Email address (optional)',
      '',
      '',
      '',
      '',
      '   By checking this box I consent to my data being used to create an account on',
      "   Abshireville's participation platform.",
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '',
      '                                                                                   Page 1'],
      ['This is a page title',
        '',
        'And here is the description of it. These appear as section dividers and not new pages in',
        'the printed form.',
        '',
        '1. Your question (optional)',
        '',
        '       Option 1',
        '       Option 2',
        '',
        '',
        '2. This is a short answer (optional)',
        '',
        '',
        '',
        '',
        '3. This is a long answer (optional)',
        '',
        '    Instructions',
        '',
        '         Put whatever you want here',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        'This is another page title',
        'But this is just a section in the printed version, not a single page.',
        '',
        '',
        '4. Linear scale field (optional)',
        '    With a description....',
        '',
        '    Please write a number between 1 and 5 only',
        '',
        '',
        '',
        '',
        '5. Another linear scale - no description (optional)',
        '    Please write a number between 1 (Totally worst) and 7 (Absolute best) only',
        '',
        '',
        '',
        '         i        i   (          )',
        '',
        '                                                                                 Page 2'],
      ['6. Multiple choice (optional)',
        '',
        '    *Choose as many as you like',
        '       this one',
        '',
        '       another option you might like more',
        '       something else',
        '',
        '',
        "    If 'something else', please specify",
        '',
        '',
        '',
        '',
        '',
        '7. Image choice (optional)',
        '',
        '    *Choose between 2 and 4 options',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '       Choose Marge              Choose bart              Choose homer',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '       Choose Lisa               Choose Maggie            All the Simpsons',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '       Other',
        '',
        '',
        "    If 'Other', please specify",
        '',
        '',
        '',
        '',
        '',
        '',
        '         i          i   (         )',
        '',
        '                                                                              Page 3'],
      ['8. Ranking question (optional)',
        '',
        '    Please write a number from 1 (most preferred) and 3 (least preferred) in each',
        '    box. Use each number only once.',
        '',
        '        First one',
        '',
        '        Another one',
        '',
        '        Choose this one',
        '',
        '',
        '',
        '9. Rating question (optional)',
        '    Rate this by writing a number between 1 (worst) and 5 (best).',
        '',
        '',
        '',
        '',
        '',
        '10. Sentiment scale question (optional)',
        '    Please write a number between 1 and 5.',
        '    1 = Very bad, 3 = Ok, 5 = Very good.',
        '',
        '',
        '',
        '',
        '11. Matrix question (optional)',
        '',
        '    For each row, mark one circle with a cross to indicate your preference.',
        '',
        '                             Strongly                                     Strongly',
        '                             disagree   Disagree    Neutral     Agree      agree',
        '',
        '    I like stuff',
        '',
        '',
        '    I like nonsense',
        '',
        '    I like nothing, but I do',
        '    like really long',
        '    statements as they',
        '    are the best!',
        '',
        '',
        '',
        '12. File upload field (optional)',
        '    This field cannot be completed on paper. Please use the online version of this',
        '    form instead.',
        '',
        '',
        '13. Number field (optional)',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '        i',
        '',
        '                                                                                 Page 4'],
      ['Mapping page',
        '',
        'All the questions in this section relate to the following map.',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '14. Drop pin question (optional)',
        '    Please do something with this map',
        '    Please draw an X on the map below to show the location or write the address',
        '',
        '    instead.',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '                        i    (         )',
        '',
        '                                                                                 Page 5'],
      ['15. Draw route question (optional)',
        '',
        '   Draw sometning',
        '   Please draw a route on the map below.',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '16. Draw area question (optional)',
        '',
        '   Draw an area please',
        '   Please draw a shape on the map below.',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '                                                                          Page 6'],
      ['About you',
        '',
        '',
        '17. Gender (optional)',
        '',
        '      Male',
        '      Female',
        '',
        '      Other',
        '',
        '',
        '18. Year of birth (optional)',
        '',
        '',
        '',
        '',
        '19. Are you a politician? (optional)',
        '',
        '   We use this to provide you with customized information',
        '      Active politician',
        '',
        '      Retired politician',
        '      No',
        '',
        '',
        '20.Place of residence (optional)',
        '',
        '      Herbland',
        '',
        '      West Horacio',
        '      West Rexberg',
        '      Murielport',
        '',
        '      Candiestad',
        '      North Hisakoland',
        '',
        '      Boehmshire',
        '      Oscarburgh',
        '',
        '      Jonathanfort',
        '      Roweview',
        '      East Jackelineport',
        '',
        '      North Reyberg',
        '      Westbrook',
        '',
        '      Somewhere else',
        '',
        '',
        'Thanks for filling in this printed survey',
        '',
        '     We will use your answers to make wise decisions.',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '',
        '                                                                           Page 7']]
  end

  let_it_be(:pdf_template_data) do
    {
      page_count: 7,
      fields: [
        { name: 'Your question',
          type: 'field',
          key: 'select_field',
          page: 2,
          position: 10,
          code: nil,
          input_type: 'select',
          description: nil,
          print_title: '1. Your question (optional)',
          content_delimiters: { start: 'Option 2', end: '2. This is a short answer (optional)' } },
        { name: 'Option 1', type: 'option', key: 'option_1', page: 2, position: 14, parent_key: 'select_field' },
        { name: 'Option 2', type: 'option', key: 'option_2', page: 2, position: 16, parent_key: 'select_field' },
        { name: 'This is a short answer',
          type: 'field',
          key: 'short_answer_field',
          page: 2,
          position: 21,
          code: nil,
          input_type: 'text',
          description: nil,
          print_title: '2. This is a short answer (optional)',
          content_delimiters: { start: '2. This is a short answer (optional)', end: '3. This is a long answer (optional)' } },
        { name: 'This is a long answer',
          type: 'field',
          key: 'long_answer_field',
          page: 2,
          position: 29,
          code: nil,
          input_type: 'multiline_text',
          description: 'InstructionsPut whatever you want here',
          print_title: '3. This is a long answer (optional)',
          content_delimiters: { start: 'Put whatever you want here', end: 'This is another page title' } },
        { name: 'Linear scale field',
          type: 'field',
          key: 'linear_scale_field',
          page: 2,
          position: 74,
          code: nil,
          input_type: 'linear_scale',
          description: 'With a description....',
          print_title: '4. Linear scale field (optional)',
          content_delimiters: { start: 'Please write a number between 1 and 5 only', end: '5. Another linear scale - no description (optional)' } },
        { name: 'Another linear scale - no description',
          type: 'field',
          key: 'another_linear_scale_field',
          page: 2,
          position: 88,
          code: nil,
          input_type: 'linear_scale',
          description: nil,
          print_title: '5. Another linear scale - no description (optional)',
          content_delimiters: { start: 'Please write a number between 1 (Totally worst) and 7 (Absolute best) only', end: '6. Multiple choice (optional)' } },
        { name: 'Multiple choice',
          type: 'field',
          key: 'multiselect_question',
          page: 3,
          position: 2,
          code: nil,
          input_type: 'multiselect',
          description: nil,
          print_title: '6. Multiple choice (optional)',
          content_delimiters: { start: "If 'Other', please specify", end: "If 'something else', please specify" } },
        { name: 'this one', type: 'option', key: 'this_one', page: 3, position: 6, parent_key: 'multiselect_question' },
        { name: 'another option you might like more', type: 'option', key: 'another_option_you_might_like_more', page: 3, position: 10, parent_key: 'multiselect_question' },
        { name: 'something else', type: 'option', key: 'other', page: 3, position: 11, parent_key: 'multiselect_question' },
        { name: "If 'something else', please specify",
          type: 'field',
          key: 'multiselect_question_other',
          page: 3,
          position: 16,
          code: nil,
          input_type: 'text',
          description: nil,
          print_title: "If 'something else', please specify",
          content_delimiters: { start: "If 'Other', please specify", end: 'Image choice (optional)' } },
        { name: 'Image choice',
          type: 'field',
          key: 'image_choice',
          page: 3,
          position: 26,
          code: nil,
          input_type: 'multiselect_image',
          description: nil,
          print_title: '7. Image choice (optional)',
          content_delimiters: { start: "If 'Other', please specify", end: "If 'Other', please specify" } },
        { name: 'Choose  Marge', type: 'option', key: 'choose_marge', page: 3, position: 28, parent_key: 'image_choice' },
        { name: 'Choose bart', type: 'option', key: 'choose_bart', page: 3, position: 45, parent_key: 'image_choice' },
        { name: 'Choose homer', type: 'option', key: 'choose_homer', page: 3, position: 47, parent_key: 'image_choice' },
        { name: 'Choose Lisa', type: 'option', key: 'choose_lisa', page: 3, position: 63, parent_key: 'image_choice' },
        { name: 'Choose Maggie', type: 'option', key: 'choose_maggie', page: 3, position: 65, parent_key: 'image_choice' },
        { name: 'All the Simpsons', type: 'option', key: 'all_the_simpsons', page: 3, position: 65, parent_key: 'image_choice' },
        { name: 'Other', type: 'option', key: 'other', page: 3, position: 81, parent_key: 'image_choice' },
        { name: "If 'Other', please specify",
          type: 'field',
          key: 'image_choice_other',
          page: 3,
          position: 85,
          code: nil,
          input_type: 'text',
          description: nil,
          print_title: "If 'Other', please specify",
          content_delimiters: { start: "If 'Other', please specify", end: 'Ranking question (optional)' } },
        { name: 'Rating question',
          type: 'field',
          key: 'rating_question',
          page: 4,
          position: 22,
          code: nil,
          input_type: 'rating',
          description: nil,
          print_title: '9. Rating question (optional)',
          content_delimiters: { start: 'Rate this by writing a number between 1 (worst) and 5 (best).', end: '10. Sentiment scale question (optional)' } },
        { name: 'Sentiment scale question',
          type: 'field',
          key: 'sentiment_scale_question',
          page: 4,
          position: 33,
          code: nil,
          input_type: 'sentiment_linear_scale',
          description: nil,
          print_title: '10. Sentiment scale question (optional)',
          content_delimiters: { start: '1 = Very bad, 3 = Ok, 5 = Very good.', end: '11. Matrix question (optional)' } },
        { name: 'Number field',
          type: 'field',
          key: 'number_question',
          page: 4,
          position: 83,
          code: nil,
          input_type: 'number',
          description: nil,
          print_title: '13. Number field (optional)',
          content_delimiters: { start: '13. Number field (optional)', end: 'Mapping page' } },
        { name: 'Gender', type: 'field', key: 'u_gender', page: 7, position: 6, code: nil, input_type: 'select', description: nil, print_title: '17. Gender (optional)', content_delimiters: { start: 'Other', end: '18. Year of birth (optional)' } },
        { name: 'Male', type: 'option', key: 'male', page: 7, position: 10, parent_key: 'u_gender' },
        { name: 'Female', type: 'option', key: 'female', page: 7, position: 11, parent_key: 'u_gender' },
        { name: 'Other', type: 'option', key: 'unspecified', page: 7, position: 14, parent_key: 'u_gender' },
        { name: 'Year of birth',
          type: 'field',
          key: 'u_birthyear',
          page: 7,
          position: 19,
          code: nil,
          input_type: 'number',
          description: nil,
          print_title: '18. Year of birth (optional)',
          content_delimiters: { start: '18. Year of birth (optional)', end: '19. Are you a politician? (optional)' } },
        { name: 'Are you a politician?',
          type: 'field',
          key: 'u_politician',
          page: 7,
          position: 27,
          code: nil,
          input_type: 'select',
          description: 'We use this to provide you with customized information',
          print_title: '19. Are you a politician? (optional)',
          content_delimiters: { start: 'We will use your answers to make wise decisions.', end: '20. Place of residence (optional)' } },
        { name: 'Active politician', type: 'option', key: 'active_politician', page: 7, position: 32, parent_key: 'u_politician' },
        { name: 'Retired politician', type: 'option', key: 'retired_politician', page: 7, position: 35, parent_key: 'u_politician' },
        { name: 'No', type: 'option', key: 'no', page: 7, position: 37, parent_key: 'u_politician' },
        { name: 'Place of residence', type: 'field', key: 'u_domicile', page: 7, position: 39, code: nil, input_type: 'select', description: nil, print_title: '20. Place of residence (optional)', content_delimiters: {} },
        { name: 'Herbland', type: 'option', key: '96fccbd7-ac1a-4d5a-b70e-2dfd2bdc3f81', page: 7, position: 44, parent_key: 'u_domicile' },
        { name: 'West Horacio', type: 'option', key: '3a702c15-3013-496f-9931-c90fb3a74381', page: 7, position: 48, parent_key: 'u_domicile' },
        { name: 'West Rexberg', type: 'option', key: '4c584172-dad6-4be1-b4f7-a14436b02ee2', page: 7, position: 49, parent_key: 'u_domicile' },
        { name: 'Murielport', type: 'option', key: '0b82f3e9-6d70-4045-b708-256674bfa9f5', page: 7, position: 51, parent_key: 'u_domicile' },
        { name: 'Candiestad', type: 'option', key: 'f70b9e6b-4266-413e-8db2-51c65aa8c63d', page: 7, position: 54, parent_key: 'u_domicile' },
        { name: 'North Hisakoland', type: 'option', key: 'e3510ee7-ff2f-4efc-88d7-900053c82829', page: 7, position: 56, parent_key: 'u_domicile' },
        { name: 'Boehmshire', type: 'option', key: '2985ff1e-28e2-426d-a991-8837dcfe2043', page: 7, position: 59, parent_key: 'u_domicile' },
        { name: 'Oscarburgh', type: 'option', key: '2e67f167-8966-4798-b6bf-572278786cb3', page: 7, position: 60, parent_key: 'u_domicile' },
        { name: 'Jonathanfort', type: 'option', key: 'dee7d6ee-4281-4df1-b6a5-fdef25960ed2', page: 7, position: 63, parent_key: 'u_domicile' },
        { name: 'Roweview', type: 'option', key: 'b9ca621b-2821-4fd0-82df-6b93e4138e22', page: 7, position: 65, parent_key: 'u_domicile' },
        { name: 'East Jackelineport', type: 'option', key: 'b0a97021-c224-4756-ab77-c86b52a648f7', page: 7, position: 67, parent_key: 'u_domicile' },
        { name: 'North Reyberg', type: 'option', key: '4fd79357-3ef9-445b-bf6a-e70bd7abb025', page: 7, position: 70, parent_key: 'u_domicile' },
        { name: 'Westbrook', type: 'option', key: '3382ae37-7b1e-4f25-955f-453c29a483b9', page: 7, position: 71, parent_key: 'u_domicile' },
        { name: 'Somewhere else', type: 'option', key: 'somewhere_else_41w', page: 7, position: 75, parent_key: 'u_domicile' }
      ]
    }
  end
end
