Skip to content
Snippets Groups Projects
Suggest.php 1.94 KiB
Newer Older
Mantas's avatar
Mantas committed
<?php

/*
 * This file is part of the ONGR package.
 *
 * (c) NFQ Technologies UAB <info@nfq.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace ONGR\ElasticsearchDSL\Suggest;

use ONGR\ElasticsearchDSL\NamedBuilderInterface;
Mantas's avatar
Mantas committed
use ONGR\ElasticsearchDSL\ParametersTrait;

class Suggest implements NamedBuilderInterface
Mantas's avatar
Mantas committed
{
    use ParametersTrait;

Denis Urban's avatar
Denis Urban committed
    private string $name;
    private string $type;
    private string $text;
    private string $field;
Mantas's avatar
Mantas committed

    /**
     * TermSuggest constructor.
     */
Denis Urban's avatar
Denis Urban committed
    public function __construct(string $name, string $type, string $text, string $field, array $parameters = [])
Mantas's avatar
Mantas committed
    {
        $this->setName($name);
        $this->setType($type);
        $this->setText($text);
        $this->setField($field);
Mantas's avatar
Mantas committed
        $this->setParameters($parameters);
    }

Denis Urban's avatar
Denis Urban committed
    /**
     * {@inheritdoc}
     */
    public function toArray(): array|\stdClass
Denis Urban's avatar
Denis Urban committed
        return [
            $this->getName() => [
                'text' => $this->getText(),
                $this->getType() => $this->processArray(['field' => $this->getField()]),
            ],
        ];
Denis Urban's avatar
Denis Urban committed
    public function getName(): string
Denis Urban's avatar
Denis Urban committed
    public function setName(string $name): static
Mantas's avatar
Mantas committed
    {
Denis Urban's avatar
Denis Urban committed
        $this->name = $name;
Denis Urban's avatar
Denis Urban committed
    public function getText(): string
Mantas's avatar
Mantas committed
    {
        return $this->text;
    }

Denis Urban's avatar
Denis Urban committed
    public function setText(string $text): static
Mantas's avatar
Mantas committed
    {
        $this->text = $text;
Denis Urban's avatar
Denis Urban committed
    public function getType(): string
    {
        return $this->type;
    }

    public function setType(string $type): static
    {
        $this->type = $type;

        return $this;
    }

Denis Urban's avatar
Denis Urban committed
    public function getField(): string
Mantas's avatar
Mantas committed
    {
        return $this->field;
    }

Denis Urban's avatar
Denis Urban committed
    public function setField(string $field): static
Mantas's avatar
Mantas committed
    {
        $this->field = $field;