class AdicionarNovosUsuarios < ActiveRecord::Migration[5.2]
  def change
    add_column :usuarios, :desenvolvedor, :boolean

		Usuario.all.each do |usuario|
			if usuario.email == 'gerencial.intersol@gmail.com'
				usuario.update_column(:desenvolvedor, true)
			end

			if (usuario.desenvolvedor == false || usuario.desenvolvedor == '')
				usuario.update_column(:desenvolvedor, false)
			end
		end

    usuario_adm = Usuario.find_by(email: 'gerencial.intersol@gmail.com')

		if usuario_adm.present?
			[
				{
					nome_completo: 'Suporte Gerencial',
					nome_de_usuario: 'suporte_ger',
					email: 'suportegerencial01@speedgov.com.br',
					password: '123456789',
					password_confirmation: '123456789',
					perfil_id: 1,
					nivel_de_permissao_a_unidades: 2,
					receber_email: true,
					master: true,
					cpf: 'suporte_ger',
					aprovado: true,
					aprovado_por_id: usuario_adm.id,
					tipo_de_poder: 1,
					desenvolvedor: true
				},
				{
					nome_completo: 'Programador 06',
					nome_de_usuario: 'programa_06',
					email: 'programador06@speedgov.com.br',
					password: '123456789',
					password_confirmation: '123456789',
					perfil_id: 1,
					nivel_de_permissao_a_unidades: 2,
					receber_email: true,
					master: true,
					cpf: 'programa_06',
					aprovado: true,
					aprovado_por_id: usuario_adm.id,
					tipo_de_poder: 1,
					desenvolvedor: true
				},
				{
					nome_completo: 'Programador 07',
					nome_de_usuario: 'programa_07',
					email: 'programador07@speedgov.com.br',
					password: '123456789',
					password_confirmation: '123456789',
					perfil_id: 1,
					nivel_de_permissao_a_unidades: 2,
					receber_email: true,
					master: true,
					cpf: 'programa_07',
					aprovado: true,
					aprovado_por_id: usuario_adm.id,
					tipo_de_poder: 1,
					desenvolvedor: true
				},
				{
					nome_completo: 'Programador 08',
					nome_de_usuario: 'programa_08',
					email: 'programador08@speedgov.com.br',
					password: '123456789',
					password_confirmation: '123456789',
					perfil_id: 1,
					nivel_de_permissao_a_unidades: 2,
					receber_email: true,
					master: true,
					cpf: 'programa_08',
					aprovado: true,
					aprovado_por_id: usuario_adm.id,
					tipo_de_poder: 1,
					desenvolvedor: true
				},
				{
					nome_completo: 'Programador 09',
					nome_de_usuario: 'programa_09',
					email: 'programador09@speedgov.com.br',
					password: '123456789',
					password_confirmation: '123456789',
					perfil_id: 1,
					nivel_de_permissao_a_unidades: 2,
					receber_email: true,
					master: true,
					cpf: 'programa_09',
					aprovado: true,
					aprovado_por_id: usuario_adm.id,
					tipo_de_poder: 1,
					desenvolvedor: true
				},
				{
					nome_completo: 'Programador 10',
					nome_de_usuario: 'programa_10',
					email: 'programador10@speedgov.com.br',
					password: '123456789',
					password_confirmation: '123456789',
					perfil_id: 1,
					nivel_de_permissao_a_unidades: 2,
					receber_email: true,
					master: true,
					cpf: 'programa_10',
					aprovado: true,
					aprovado_por_id: usuario_adm.id,
					tipo_de_poder: 1,
					desenvolvedor: true
				},
				{
					nome_completo: 'Programador 12',
					nome_de_usuario: 'programa_12',
					email: 'programador12@speedgov.com.br',
					password: '123456789',
					password_confirmation: '123456789',
					perfil_id: 1,
					nivel_de_permissao_a_unidades: 2,
					receber_email: true,
					master: true,
					cpf: 'programa_12',
					aprovado: true,
					aprovado_por_id: usuario_adm.id,
					tipo_de_poder: 1,
					desenvolvedor: true
				}
			].each do |usuario_params|
				user_verif = Usuario.find_by(email: usuario_params[:email])
				if user_verif.blank?
					novo_usuario = Usuario.new(usuario_params)
					novo_usuario.save(validate: false)
				end
			end
		end
		puts "Finalizado a inserção de novos usuários."
  end
end
