FactoryBot.define do
	factory :programa_escolar, class: 'Ppa::Programa' do
		nome {Faker::Name.first_name}
		codigo {"0102"}
		justificativa {"Programa gerado devido a carencia do setor de educação infantil"}
		eixo_id {
			Ppa::Eixo.find_by(nome: "Sustentável").try(:id) ||
			FactoryBot.create(:eixo_sustentavel, :ppa_2014).id
		}
		tipo_de_programa_id {
			Ppa::TipoDePrograma.find_by(nome: "Programas Finalísticos").try(:id) ||
			FactoryBot.create(:programas_tematicos).id
		}

		trait :ppa_atual do
			ppa_id {
				Ppa::Ppa.first.id
			}

			orgao_id {
				Ppa::Orgao.find_by(nome: "Secretaria da Fazenda", ppa_id: Ppa::Ppa.first.id ).try(:id) ||
				FactoryBot.create(:orgao_secretaria_da_fazenda, :ppa_atual).id
			}
		end

		trait :ppa_2010 do
			ppa_id {
				Ppa::Ppa.find_by( prefeito: 'Luiziane Lins' ).try(:id) ||
				FactoryBot.create( :ppa_fortaleza_2010 ).id
			}

			orgao_id {
				Ppa::Orgao.find_by(nome: "Secretaria da Fazenda", ppa_id: self.ppa_id ).try(:id) ||
				FactoryBot.create(:orgao_secretaria_da_fazenda, :ppa_2010).id
			}
		end

		trait :ppa_2014 do
			ppa_id {
				Ppa::Ppa.find_by( prefeito: 'Roberto Cláudio' ).try(:id) ||
				FactoryBot.create( :ppa_fortaleza_2014 ).id
			}

			orgao_id {
				Ppa::Orgao.find_by(nome: "Secretaria da Fazenda", ppa_id: self.ppa_id ).try(:id) ||
				FactoryBot.create(:orgao_secretaria_da_fazenda, :ppa_2014).id
			}
		end
	end

	factory :programa_saude, class: 'Ppa::Programa' do
		nome {"Melhoria atendimento aos postos de saude"}
		codigo {"0205"}
		justificativa {"Programa gerado devido a carencia do setor de saude"}
		eixo_id {
			Ppa::Eixo.find_by(nome: "Sustentável").try(:id) ||
			FactoryBot.create(:eixo_sustentavel, :ppa_2014).id
		}
		tipo_de_programa_id {
			Ppa::TipoDePrograma.find_by(nome: "Programas Finalísticos").try(:id) ||
			FactoryBot.create(:programas_tematicos).id
		}

		trait :ppa_2010 do
			ppa_id {
				Ppa::Ppa.find_by( prefeito: 'Luiziane Lins' ).try(:id) ||
				FactoryBot.create( :ppa_fortaleza_2010 ).id
			}

			orgao_id {
				Ppa::Orgao.find_by(nome: "Secretaria da Fazenda", ppa_id: self.ppa_id ).try(:id) ||
				FactoryBot.create(:orgao_secretaria_da_fazenda, :ppa_2010).id
			}
		end

		trait :ppa_2014 do
			ppa_id {
				Ppa::Ppa.find_by( prefeito: 'Roberto Cláudio' ).try(:id) ||
				FactoryBot.create( :ppa_fortaleza_2014 ).id
			}

			orgao_id {
				Ppa::Orgao.find_by(nome: "Secretaria da Fazenda", ppa_id: self.ppa_id ).try(:id) ||
				FactoryBot.create(:orgao_secretaria_da_fazenda, :ppa_2014).id
			}
		end
	end
end
