Skip to content
Snippets Groups Projects
AggsCollection.php 505 B
Newer Older
Pavel's avatar
Pavel committed
<?php

namespace IQDEV\ElasticSearch\Search\Aggs;

use IQDEV\ElasticSearch\Esable;

Pavel's avatar
Pavel committed
final class AggsCollection implements Esable
Pavel's avatar
Pavel committed
{
Pavel's avatar
Pavel committed
    /**
     * @var Aggs[]
     */
    private array $aggs = [];

    public function add(Aggs $aggs): self
Pavel's avatar
Pavel committed
    {
Pavel's avatar
Pavel committed
        $this->aggs[] = $aggs;

        return $this;
Pavel's avatar
Pavel committed
    }

    public function es(): array
    {
        $aggs = [];
Pavel's avatar
Pavel committed
        foreach ($this->aggs as $agg) {
Pavel's avatar
Pavel committed
            $aggs[$agg->getKey()] = $agg->es();
        }

        return ['aggs' => $aggs];
    }
Pavel's avatar
Pavel committed
}