# frozen_string_literal: true

# Provides methods for Prices
class PriceService
  extend ApplicationHelper

  def self.list(filters)
    prices = Price.where(nil)

    prices = prices.where(priceable_type: filters[:priceable_type]) if filters[:priceable_type].present?
    prices = prices.where(priceable_id: may_array(filters[:priceable_id])) if filters[:priceable_id].present?
    prices = prices.where(group_id: may_array(filters[:group_id])) if filters[:group_id].present?
    if filters[:plan_id].present?
      plan_id = /no|nil|null|undefined/i.match?(filters[:plan_id]) ? nil : filters[:plan_id]
      prices = prices.where(plan_id: plan_id)
    end

    prices
  end
end
