class AppleBar
  attr_reader :ordergroup

  def initialize(ordergroup)
    @ordergroup = ordergroup
    @group_avg = ordergroup.avg_jobs_per_euro.to_f
    @global_avg = Ordergroup.avg_jobs_per_euro
  end

  # Show group bar in following colors:
  # Green if higher than 100
  # Yellow if lower than 100 an higher than stop_ordering_under option value
  # Red if below stop_ordering_under, the ordergroup isn't allowed to participate in an order anymore
  def group_bar_state
    if apples >= 100
      'success'
    elsif FoodsoftConfig[:stop_ordering_under].present? &&
          (apples >= FoodsoftConfig[:stop_ordering_under])
      'warning'
    else
      'danger'
    end
  end

  # Use apples as percentage, but show at least 10 percent
  def group_bar_width
    [@ordergroup.apples, 2].max
  end

  def mean_order_amount_per_job
    (1 / @global_avg).round
  rescue StandardError
    0
  end

  def apples
    @apples ||= @ordergroup.apples
  end

  def with_restriction?
    FoodsoftConfig[:stop_ordering_under].present?
  end
end
