# frozen_string_literal: true

module ReportsHelper
  def report_order_cycle_options(order_cycles)
    order_cycles.map do |oc|
      orders_open_at = oc.orders_open_at&.to_fs(:short) || 'NA'
      orders_close_at = oc.orders_close_at&.to_fs(:short) || 'NA'
      # rubocop:disable Rails/OutputSafety
      ["#{oc.name} &nbsp; (#{orders_open_at} - #{orders_close_at})".html_safe, oc.id]
      # rubocop:enable Rails/OutputSafety
    end
  end

  def report_payment_method_options(orders)
    orders.map do |order|
      payment_method = order.payments.last&.payment_method

      next unless payment_method

      [payment_method.display_name, payment_method.id]
    end.compact.uniq
  end

  def report_shipping_method_options(orders)
    orders.map do |o|
      sm = o.shipping_method
      [sm&.name, sm&.id]
    end.uniq
  end

  def customer_email_options(order_customers)
    order_customers.map do |customer|
      [customer&.email, customer&.id]
    end
  end

  delegate :currency_symbol, to: :'Spree::Money'

  def datepicker_time(datetime)
    datetime = Time.zone.parse(datetime) if datetime.is_a? String
    datetime.strftime('%Y-%m-%d %H:%M')
  end
end
