BB
Size: a a a
BB
BB
AB
BB
BB
BB
BB
BB
AB
recompile
в консоли и окBB
recompile
в консоли и окAD
AB
AD
BB
AB
NM
AB
AD
AD
ŹR
Enum.reduce(
items,
%BlackFriday.Order{owner: owner},
fn %BlackFriday.Product{code: code} = item,
%BlackFriday.Order{items: items, total: total} = order ->
code
|> rules()
|> Enum.reduce(
%BlackFriday.Order{
order
| items: [item | items],
total: Money.add!(total, item.price)
},
fn rule, acc ->
if rule.applicable?(item),
do: %BlackFriday.Order{
acc
| total:
rule.apply!(%BlackFriday.Order{
acc
| items: Enum.filter(acc.items, &(&1.code == item.code))
})
},
else: acc
end
)
end
)