<?php

declare(strict_types=1);

namespace {{ tree.getFullNameSpaceOfFile(file, entity, action) }};

use App\Base\ReadPageParameter;
use App\Base\ReadPageQueryBuilder;
{% for dependency in dependencyzz %}
use {{ dependency }};{% endfor %}
use Illuminate\Database\Eloquent\Model;
use Illuminate\Pagination\Paginator;

class {{ helper.getClassName(file, entity, action) }}
{
    /**
     * @param array<string, mixed> $Data
     * @return Paginator<Model>
     */
    public function run(int $UserId, array $Data): Paginator
    {
        $qb = {{ helper.getClassName(helper.findFile('Model'), entity, action) }}::query();
        $qb->where('UserId', $UserId);

        $builder = new ReadPageQueryBuilder($qb, ReadPageParameter::from($Data));

        $builder->addFilterzz([
{% for column in columnzz %}
            '{{ column.name }}',{% endfor %}
        ]);

        $builder->addSort();

        return $builder->paginateSimple();
    }

}
