after 'development:families' do
  puts 'building students....'

  School.all.each do |school|
    entry_date = school.current_year.q1_start
    family = school.families.first
    student = family.primary_students.build(
      first_name: Faker::Name.first_name,
      last_name: family.contacts.first.last_name,
      current: true,
      gender: ['male', 'female'].sample,
      grade: Array(0..12).sample,
      skip_edfiable: true
    )
    student.code = family.generate_student_code
    student.date_of_birth = (student.grade + 5).years.ago
    student.save

    student.school_year_students.create!(
      school_year: school.current_year,
      current: true,
      grade: school.school_grades.find_by(grade: student.grade),
      entry_date: entry_date,
      skip_edfiable: true
    )

    user = school.users.build(
      first_name: student.first_name,
      last_name: student.last_name,
      username: 'student',
      encrypted_password: 'guest',
      active: true,
      family: family,
      student: student,
      terms_of_service_date: Time.current
    )
    user.save(validate: false)

    loops = ENV['minimal'] ? 10 : 200
    families = school.families
    loops.times do
      family = families.sample
      student = family.primary_students.build(
        first_name: Faker::Name.first_name,
        last_name: family.contacts.first.last_name,
        current: true,
        gender: ['male', 'female'].sample,
        grade: Array(0..12).sample,
        skip_edfiable: true
      )
      student.code = family.generate_student_code
      student.date_of_birth = (student.grade + 5).years.ago
      student.save

      student.school_year_students.create!(
        school_year: school.current_year,
        current: true,
        grade: school.school_grades.find_by(grade: student.grade),
        entry_date: entry_date,
        skip_edfiable: true
      )
    end

    loops = ENV['minimal'] ? 2 : 50
    school.students.sample(loops) do |s|
      s.family2 = school.families.sample
      s.save
    end
  end
end
