<?php

declare(strict_types=1);

namespace KupShop\CatalogBundle\ProductList\Builder;

use KupShop\CatalogBundle\CategorySort;
use KupShop\CatalogBundle\Enum\OrderDirection;
use KupShop\CatalogBundle\Enum\ProductOrder;
use KupShop\CatalogBundle\ProductList\DynamicFilterAttributes;

class BuilderState
{
    public ?ProductOrder $orderBy = null;
    public OrderDirection $orderDirection = OrderDirection::ASC;
    public array|\FilterParams|null $filterData = null;
    public ?\FilterParams $baseFilterParams = null;
    public ?\Pager $pager = null;
    public string $resultEntity = \FilterParams::ENTITY_PRODUCT;
    public ?DynamicFilterAttributes $dynamicFilterAttributes = null;
    public ?CategorySort $categorySort = null;
    public bool $fetchAllFilters = false;

    private function __construct()
    {
    }

    public static function empty(): static
    {
        return new static();
    }
}
