. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Tools\Kanban; use Espo\Core\ORM\EntityManager; use Espo\Core\Utils\Id\RecordIdGenerator; use Espo\Core\Utils\Metadata; class Orderer { public function __construct( private EntityManager $entityManager, private Metadata $metadata, private RecordIdGenerator $idGenerator, private MetadataProvider $metadataProvider, ) {} public function setEntityType(string $entityType): OrdererProcessor { return $this->createProcessor()->setEntityType($entityType); } public function setGroup(string $group): OrdererProcessor { return $this->createProcessor()->setGroup($group); } public function setUserId(string $userId): OrdererProcessor { return $this->createProcessor()->setUserId($userId); } public function setMaxNumber(?int $maxNumber): OrdererProcessor { return $this->createProcessor()->setMaxNumber($maxNumber); } public function createProcessor(): OrdererProcessor { return new OrdererProcessor( entityManager: $this->entityManager, metadata: $this->metadata, idGenerator: $this->idGenerator, metadataProvider: $this->metadataProvider, ); } }