Talvez seja mais facil para entendimento chamar o total-dos-pedidos
de total-do-usuario
eu só entendi depois que mudei esse nomenclatura, segue exemplo:
(defn total-do-item
[[_ descricao]]
(* (get descricao :quantidade 0) (get descricao :preco-unitario 0)))
(defn total-do-pedido [item]
(->> item
(map total-do-item)
(reduce +)))
(defn total-do-usuario
[pedido]
(->> pedido
(map :itens)
(map total-do-pedido)
(reduce +)))
(defn conta-total-por-usuario
[[usuario pedidos]]
{:usuario-id usuario
:total-de-pedidos (count pedidos)
:total-do-usuario (total-do-usuario pedidos)})
(->> (l.db/todos-os-pedidos)
(group-by :usuario)
(map conta-total-por-usuario)
println)