FactoryBot.define do
	factory :funcao_saude, class: 'Base::Funcao' do
		nome {"Saúde Teste"}
		codigo {"80"}

		trait :orcamento_2016 do
			after(:build) do |unidade|
				unidade.modulo ||= Orcamento.find_or_create_by!( FactoryBot.attributes_for( :orcamento_2016 ) )
				unidade.tipo_de_orcamento ||= Base::TipoDeOrcamento.find_or_create_by!( FactoryBot.attributes_for( :seguridade_social, :orcamento_2016 ) )
			end
		end

		trait :orcamento_2017 do
			modulo_id { Orcamento.find_or_create_by!( FactoryBot.attributes_for( :orcamento_2017 ) ).id }
			modulo_type {"Orcamento"}

			tipo_de_orcamento_id {
        Base::TipoDeOrcamento.find_or_create_by!( FactoryBot.attributes_for( :seguridade_social, :orcamento_2016 ) ).id
      }
		end
	end

	factory :funcao_administracao, class: 'Base::Funcao' do
		nome {"Administração Teste"}
		codigo {"81"}
		trait :orcamento_2016 do
			modulo_id { Orcamento.find_or_create_by!( FactoryBot.attributes_for( :orcamento_2016 ) ).id }
			modulo_type {"Orcamento"}

			tipo_de_orcamento_id {
        Base::TipoDeOrcamento.find_or_create_by!( FactoryBot.attributes_for( :orcamento_fiscal, :orcamento_2016 ) ).id
      }
		end

		trait :orcamento_2017 do
			modulo_id { Orcamento.find_or_create_by!( FactoryBot.attributes_for( :orcamento_2017 ) ).id }
			modulo_type {"Orcamento"}
			tipo_de_orcamento_id {
        Base::TipoDeOrcamento.find_or_create_by!( FactoryBot.attributes_for( :orcamento_fiscal, :orcamento_2016 ) ).id
      }
		end
	end
end
