# frozen_string_literal: true

class RolloutStatusEntity < Grape::Entity
  include RequestAwareEntity

  expose :status, as: :status

  # To be removed in API v5
  expose :has_legacy_app_label do |_rollout_status|
    false
  end

  expose :instances, if: -> (rollout_status, _) { rollout_status.found? }
  expose :completion, if: -> (rollout_status, _) { rollout_status.found? }
  expose :complete?, as: :is_completed, if: -> (rollout_status, _) { rollout_status.found? }
  expose :canary_ingress, using: RolloutStatuses::IngressEntity, expose_nil: false,
         if: -> (rollout_status, _) { rollout_status.found? && rollout_status.canary_ingress_exists? }
end
