Commit ae29226d authored by Pavel's avatar Pavel
Browse files

added criteria, updated logic

parent afea9c32
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -9,7 +9,7 @@
      "email": "p.piligrimov@iqdev.digital"
    }
  ],
  "version": "0.0.1",
  "version": "0.1.0",
  "type": "library",
  "keywords": [
    "search",
+35 −0
Original line number Diff line number Diff line
<?php

namespace IQDEV\Search;

use IQDEV\Search\Filter\FilterCollection;
use IQDEV\Search\Order\OrderCollection;

final class Criteria
{
    private FilterCollection $filters;
    private OrderCollection $sorting;
    private Pagination $pagination;

    public function __construct()
    {
        $this->filters = new FilterCollection();
        $this->sorting = new OrderCollection();
        $this->pagination = new Pagination();
    }

    public function filters(): FilterCollection
    {
        return $this->filters;
    }

    public function sorting(): OrderCollection
    {
        return $this->sorting;
    }

    public function pagination(): Pagination
    {
        return $this->pagination;
    }
}

src/Search/Document/Document.php

deleted100644 → 0
+0 −15
Original line number Diff line number Diff line
<?php

namespace IQDEV\Search\Document;

final class Document
{
    public string $id;
    public array $data;

    public function __construct(string $id, array $data)
    {
        $this->id   = $id;
        $this->data = $data;
    }
}
+21 −0
Original line number Diff line number Diff line
<?php

namespace IQDEV\Search\Document;

final class Product
{
    public string $id;
    public string $title;
    public array $info;

    public function __construct(
        string $id,
        string $title,
        array  $info = []
    )
    {
        $this->id = $id;
        $this->title = $title;
        $this->info = $info;
    }
}
+17 −0
Original line number Diff line number Diff line
@@ -2,19 +2,16 @@

namespace IQDEV\Search\Document;

use Ramsey\Collection\AbstractArray;
use Ramsey\Collection\AbstractCollection;
use Ramsey\Collection\CollectionInterface;


/**
 * @extends AbstractArray<Document>
 * @implements CollectionInterface<Document>
 * @extends AbstractCollection<Product>
 */
final class DocumentCollection extends AbstractCollection
final class ProductCollection extends AbstractCollection
{

    public function getType(): string
    {
        return Document::class;
        return Product::class;
    }
}
Loading