%w(04 05 11 14 31 33 47 61 93).each do |codigo|
  elemento_de_despesa = NaturezaDaDespesa::ElementoDeDespesa.find_by_codigo(codigo)
  Base::Categoria.find_or_create_by!(codigo: elemento_de_despesa.codigo, titulo: elemento_de_despesa.descricao, tipo: 0).tap do |categoria|
    categoria.elementos_por_categoria.find_or_create_by!(elemento_de_gasto: elemento_de_despesa)
  end
end

%w(30 35 43 41 51 52).each do |codigo|
  elemento_de_despesa = NaturezaDaDespesa::ElementoDeDespesa.find_by_codigo(codigo)
  Base::Categoria.find_or_create_by!(codigo: elemento_de_despesa.codigo, titulo: elemento_de_despesa.descricao, tipo: 0).tap do |categoria|
    categoria.elementos_por_categoria.find_or_create_by!(elemento_de_gasto: elemento_de_despesa)
    elemento_de_despesa.sub_elementos_de_despesa.each do |sub_elemento|
      subcategoria = categoria.subcategorias.find_or_create_by!(codigo: sub_elemento.codigo, titulo: sub_elemento.descricao)
      subcategoria.elementos_por_categoria.find_or_create_by!(elemento_de_gasto: sub_elemento)
    end
  end
end

Base::Categoria.find_or_create_by!(codigo: "36", titulo: "Serviços", tipo: 1).tap do |categoria|
  NaturezaDaDespesa::ElementoDeDespesa.where(codigo: ["34", "35", "36", "37", "39", "40"]).each do |elemento|
    categoria.elementos_por_categoria.find_or_create_by!(elemento_de_gasto: elemento)
  end
end

Base::Categoria.find_by_codigo(30).elementos_por_categoria.find_or_create_by!(elemento_de_gasto: NaturezaDaDespesa::ElementoDeDespesa.find_by_codigo(32))

Base::Categoria.find_by_codigo(14).elementos_por_categoria.find_or_create_by!(elemento_de_gasto: NaturezaDaDespesa::ElementoDeDespesa.find_by_codigo(36))