FactoryBot.define do
	factory :item_do_pedido, class: 'Licitacao::ItemDoPedido' do
		item_id {
			Base::Item.find_or_create_by!( FactoryBot.attributes_for(:caderno) ).id
		}
		pedido_id {
			(Licitacao::Pedido.find_by( FactoryBot.attributes_for(:pedido).except(:categorias_do_pedido_attributes) ) || FactoryBot.create(:pedido)).id
		}
		after(:build) { |item_do_pedido|
			unidade_por_pedido = item_do_pedido.pedido.unidades_orcamentarias_por_pedido.first
			item_do_pedido.itens_do_pedido_por_unidade_orcamentaria.build(unidade_orcamentaria_por_pedido_id: unidade_por_pedido.id, quantidade: 10 )
		}

		tipo {'por_preco'}

		trait :por_valor_previsto do
			por_valor_previsto{ true }
			after(:build) { |item_do_pedido|
				unidade_por_pedido = item_do_pedido.pedido.unidades_orcamentarias_por_pedido.first
				item_do_pedido.itens_do_pedido_por_unidade_orcamentaria.build(unidade_orcamentaria_por_pedido_id: unidade_por_pedido.id, quantidade: 0, valor_previsto_desconto: 100 )
			}
		end

		trait :por_desconto do
			tipo {'por_desconto'}
		end
	end
end
