please optimize this elixir function: 
  def sale_product_lines(sale) do
    lines = []

    lines =
      if sale.roof_type == "Shake" do
        lines ++ ["greenamericanhome"]
      else
        if sale.roof_type != "PVC" do
          lines ++ ["permalock"]
        else
          lines
        end
      end

    work_orders = Reports.list_complete_sale_reports(sale.id)

    lines =
      if sale.roof_type == "PVC" || sale.pvc_color ||
           Enum.any?(work_orders, fn order -> workorder_has_feature?(order, :pvc) end) do
        lines ++ ["durolast"]
      else
        lines
      end

    lines =
      if Enum.any?(work_orders, fn order ->
           workorder_has_feature?(order, :number_of_skylights)
         end) do
        lines ++ ["velux"]
      else
        lines
      end

    lines
  end