after 'development:schools', 'development:relationships', 'development:titles' do
  puts 'building families....'
  loops = ENV['minimal'] ? 3 : 100

  School.all.each do |school|
    year = school.current_year

    loops.times do
      contact_one = school.contacts.create(
        first_name: Faker::Name.male_first_name,
        last_name: Faker::Name.last_name,
        title: Title.find_by(name: 'Mr.'),
        email: 'dev@sycamoreleaf.com'
      )

      contact_two = school.contacts.create(
        first_name: Faker::Name.female_first_name,
        last_name: contact_one.last_name,
        title: Title.find_by(name: 'Mrs.'),
        email: 'dev@sycamoreleaf.com'
      )

      family_name =
        "#{contact_one.last_name}, #{contact_one.first_name} and #{contact_two.first_name}"

      family = school.families.create(
        name: family_name,
        code: school.generate_family_code_and_save(family_name),
        current: true,
        address: Faker::Address.street_address,
        address_ext: Faker::Address.secondary_address,
        city: Faker::Address.city,
        state: Faker::Address.state_abbr,
        zip: Faker::Address.zip
      )

      family.school_years << year

      family.contact_families.create!(
        contact: contact_one,
        relationship: Relationship.find_by(name: 'Father'),
        primary: true,
        emergency: true,
        pickup: true
      )

      family.contact_families.create!(
        contact: contact_two,
        relationship: Relationship.find_by(name: 'Mother'),
        primary: true,
        emergency: true,
        pickup: true
      )
    end

    family = school.families.first

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

    family.primary_contacts.each_with_index do |contact, index|
      user = school.users.build(
        first_name: contact.first_name,
        last_name: contact.last_name,
        username: "current#{index + 1}",
        encrypted_password: 'guest',
        active: true,
        family: family,
        contact: contact,
        terms_of_service_date: Time.current
      )
      user.save!(validate: false)
    end
  end
end
