Advertisement
Guest User

Untitled

a guest
Jan 20th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.84 KB | None | 0 0
  1. # This file should contain all the record creation needed to seed the database with its default values.
  2. # The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
  3. #
  4. # Examples:
  5. #
  6. #   movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
  7. #   Character.create(name: 'Luke', movie: movies.first)
  8.  
  9. puts 'Creating candidates...'
  10. 30.times do
  11.   Candidate.create!(
  12.     first_name: FFaker::Name.first_name,
  13.     last_name: FFaker::Name.last_name,
  14.     email: "#{rand(0..1000).to_s + FFaker::Internet.email}" ,
  15.     summary: FFaker::Lorem.sentence,
  16.     password: 'password',
  17.     password_confirmation: 'password'
  18.   )
  19. end
  20.  
  21. Candidate.create!(
  22.   first_name: 'Test',
  23.   last_name: 'Candidate',
  24.   email: 'test@gmail.com',
  25.   password: 'password',
  26.   password_confirmation: 'password'
  27. )
  28.  
  29. puts 'Creating companies...'
  30. 32.times do
  31.   Company.create!(
  32.     name: "#{FFaker::Company.name} - ##{rand(0..1000)}",
  33.     email: "#{rand(0..1000).to_s + FFaker::Internet.email}" ,
  34.     location: FFaker::Address.city,
  35.     industry: FFaker::Company.position
  36.   )
  37. end
  38.  
  39. puts 'Creating employers...'
  40. Company.find_each do |company|
  41.   2.times do
  42.     Employer.create!(
  43.       first_name: FFaker::Name.first_name,
  44.       last_name: FFaker::Name.last_name,
  45.       email: "#{rand(0..1000).to_s + FFaker::Internet.email}" ,
  46.       description: FFaker::Lorem.sentence,
  47.       fee_percent: 10,
  48.       address: FFaker::Address.street_address,
  49.       company: company
  50.     )
  51.   end
  52. end
  53.  
  54. puts 'Creating employees...'
  55. Employer.find_each do |employer|
  56.  
  57.   Employee.create!(
  58.     first_name: FFaker::Name.first_name,
  59.     last_name: FFaker::Name.last_name,
  60.     email: "#{rand(0..1000).to_s + FFaker::Internet.email}" ,
  61.     password: 'password',
  62.     password_confirmation: 'password',
  63.     employee_type: Employee.employee_types[:admin],
  64.     employer: employer,
  65.     company: employer.company
  66.   )
  67.  
  68.   Employee.create!(
  69.     first_name: FFaker::Name.first_name,
  70.     last_name: FFaker::Name.last_name,
  71.     email: "#{rand(0..1000).to_s + FFaker::Internet.email}" ,
  72.     password: 'password',
  73.     password_confirmation: 'password',
  74.     employee_type: Employee.employee_types[:member],
  75.     employer: employer,
  76.     company: employer.company
  77.   )
  78.  
  79.   Employee.create!(
  80.     first_name: FFaker::Name.first_name,
  81.     last_name: FFaker::Name.last_name,
  82.     email: "#{rand(0..1000).to_s + FFaker::Internet.email}" ,
  83.     password: 'password',
  84.     password_confirmation: 'password',
  85.     employee_type: Employee.employee_types[:owner],
  86.     employer: employer,
  87.     company: employer.company
  88.   )
  89. end
  90.  
  91. Employee.create!(
  92.   first_name: 'Test',
  93.   last_name: 'Employee',
  94.   email: 'test@gmail.com',
  95.   password: 'password',
  96.   password_confirmation: 'password',
  97.   employee_type: Employee.employee_types[:admin],
  98.   employer: Employer.first,
  99.   company: Employer.first.company
  100. )
  101.  
  102. puts 'Creating headhunters...'
  103. 30.times do
  104.   Headhunter.create!(
  105.     first_name: FFaker::Name.first_name,
  106.     last_name: FFaker::Name.last_name,
  107.     email: "#{rand(0..1000).to_s + FFaker::Internet.email}" ,
  108.     password: 'password',
  109.     password_confirmation: 'password',
  110.     fee_percent: 15
  111.   )
  112. end
  113.  
  114. Headhunter.create!(
  115.   first_name: 'Test',
  116.   last_name: 'Headhunter',
  117.   email: 'test@gmail.com',
  118.   password: 'password',
  119.   password_confirmation: 'password',
  120.   fee_percent: 15
  121. )
  122.  
  123. puts 'Creating skills...'
  124. Skill.create!(name: 'Engining')
  125. Skill.create!(name: 'Ruby')
  126. Skill.create!(name: 'Ruby on Rails')
  127. Skill.create!(name: 'JavaScript')
  128. Skill.create!(name: 'ReactJs')
  129. Skill.create!(name: 'Jquery')
  130. Skill.create!(name: 'AngularJs')
  131. Skill.create!(name: 'C')
  132. Skill.create!(name: 'C++')
  133. Skill.create!(name: 'PHP')
  134. Skill.create!(name: 'SQL')
  135. Skill.create!(name: 'PostgreSQL')
  136. Skill.create!(name: 'MySQL')
  137. Skill.create!(name: 'Git')
  138. Skill.create!(name: 'RESTfulAPI')
  139. Skill.create!(name: 'Debugging')
  140. Skill.create!(name: 'Windows')
  141. Skill.create!(name: 'Linux')
  142.  
  143. puts 'Creating positions...'
  144. 10.times do
  145.   Position.create!(
  146.       name: "#{FFaker::Company.position} - ##{rand(0..1000)}"
  147.   )
  148. end
  149.  
  150. puts 'Creating requisitions...'
  151. Employee.find_each do |employee|
  152.   10.times do
  153.     Requisition.create!(
  154.       requisition_number: "#{FFaker::AddressCA.postal_code} - #{rand(0..9000)}",
  155.       name: "#{FFaker::Job.title} - ##{rand(0..9000)}",
  156.       description: FFaker::Lorem.sentence,
  157.       location: FFaker::Address.city,
  158.       salary: 99999,
  159.       status: 'opened',
  160.       employee: employee,
  161.       employer: employee.employer,
  162.       company: employee.employer.company,
  163.       position: Position.order('RANDOM()').first
  164.     )
  165.   end
  166. end
  167.  
  168. puts 'Creating requisition_openings...'
  169. Employee.find_each do |employee|
  170.   5.times do
  171.     employee.requisition_openings.create!(
  172.       employer: employee.employer,
  173.       headcount: rand(1..10),
  174.       title: FFaker::Lorem.sentence,
  175.       state: 'pending'
  176.     )
  177.   end
  178. end
  179.  
  180. puts 'Creating requisition requirements...'
  181. RequisitionOpening.find_each do |req_opening|
  182.   req_opening.create_requisition_requirement!(
  183.     description: FFaker::Lorem.sentence,
  184.     salary_range: "$#{rand(1000..1500)} - #{rand(1600..3000)}",
  185.     title: FFaker::Lorem.sentence,
  186.     external_name: FFaker::Company.position,
  187.     benefits: { first_benefit: 'super professional team', second_benefit: 'free coffee' },
  188.     terms: { first_term: 'term 1', second_term: 'term 2' }
  189.   )
  190. end
  191.  
  192. puts 'Creating education organizations...'
  193. 1.times do
  194.   EducationOrganization.create!(
  195.     name: FFaker::Education.school_name,
  196.     description: FFaker::Lorem.sentence,
  197.     organization_type: 'high_school',
  198.   )
  199.  
  200.   EducationOrganization.create!(
  201.     name: FFaker::Education.major,
  202.     description: FFaker::Lorem.sentence,
  203.     organization_type: 'college',
  204.   )
  205.  
  206.   EducationOrganization.create!(
  207.     name: FFaker::Education.school,
  208.     description: FFaker::Lorem.sentence,
  209.     organization_type: 'university',
  210.   )
  211. end
  212.  
  213. puts 'Creating nested data for candidates...'
  214. Candidate.all.each_with_index do |candidate, i|
  215.   company = Company.all[i]
  216.   headhunter = Headhunter.all[i]
  217.  
  218.  
  219.   candidate.update!(
  220.     headhunter: headhunter
  221.   )
  222.  
  223.   candidate.work_histories.create!(
  224.     company: company,
  225.     position: company.positions.first,
  226.     start_date: Date.today,
  227.     salary: 100000,
  228.     description: FFaker::Lorem.sentence
  229.   )
  230.  
  231.   candidate.candidate_companies.create!(
  232.     company: company,
  233.     status: 'blocked'
  234.   )
  235.  
  236.   candidate.candidate_companies.create!(
  237.     company: Company.all[i + 1],
  238.     status: 'favourite'
  239.   )
  240.  
  241.   2.times do
  242.     candidate.candidate_educations.create!(
  243.       education_organization: EducationOrganization.order('RANDOM()').first,
  244.       description: FFaker::Lorem.sentence,
  245.       degree: FFaker::Education.degree_short,
  246.       started_at: 5.years.ago,
  247.       finished_at: Date.today + 2.years
  248.     )
  249.   end
  250.  
  251.   CandidateLevel.create!(
  252.     candidate: candidate,
  253.     level: 'bronze',
  254.     description: FFaker::Lorem.sentence,
  255.     rank_percentile: 10
  256.   )
  257.  
  258.   CandidateRequirement.create!(
  259.     candidate: candidate,
  260.     location: FFaker::Address.city,
  261.     industry: FFaker::Company.position,
  262.     company_size: 50 + rand(1000),
  263.     salary: 10000 + rand(50000)
  264.   )
  265.  
  266.   5.times do
  267.     candidate.requisition_candidates.create!(
  268.         requisition_opening: RequisitionOpening.order('RANDOM()').first
  269.     )
  270.   end
  271.  
  272.   candidate.requisition_candidates.each do |r_c|
  273.     r_c.requisition_statuses.create!(
  274.       status: 'messaged',
  275.       notes: FFaker::Lorem.sentence
  276.     )
  277.   end
  278.  
  279.   3.times do
  280.     candidate.candidate_skills.create!(
  281.       skill: Skill.order('RANDOM()').first
  282.     )
  283.   end
  284.  
  285.   candidate.employer_candidates.create!(
  286.     employer: Employer.all[0],
  287.     status: 'interview_requested'
  288.   )
  289.  
  290.   candidate.employer_candidates.create!(
  291.     employer: Employer.all[1],
  292.     status: 'interview_accepted'
  293.   )
  294.  
  295.   candidate.employer_candidates.create!(
  296.     employer: Employer.all[2],
  297.     status: 'interview_declined'
  298.   )
  299.  
  300.   candidate.employer_candidates.create!(
  301.     employer: Employer.all[3],
  302.     status: 'interview_scheduled'
  303.   )
  304.  
  305.   candidate.employer_candidates.create!(
  306.     employer: Employer.all[4],
  307.     status: 'interviewed'
  308.   )
  309.  
  310.   candidate.employer_candidates.create!(
  311.     employer: Employer.all[5],
  312.     status: 'offer_sent'
  313.   )
  314.  
  315.   candidate.employer_candidates.create!(
  316.     employer: Employer.all[6],
  317.     status: 'offer_declined'
  318.   )
  319.  
  320.   candidate.employer_candidates.create!(
  321.     employer: Employer.all[7],
  322.     status: 'hired'
  323.   )
  324. end
  325.  
  326. puts 'Creating requisiton_openings for test employee employer...'
  327. Employee.last.employer.requisition_openings.each do |req_opening|
  328.   5.times do
  329.     RequisitionCandidate.create!(
  330.       candidate: Candidate.order('RANDOM()').first,
  331.       requisition_opening: req_opening
  332.     )
  333.   end
  334. end
  335.  
  336. puts 'Importing Candidates to Elasticsearch indexes...'
  337. Candidate.import
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement