22 lines
884 B
PHP
22 lines
884 B
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace App\Services\Documentation;
|
|
|
|
use App\Dto\Builder\Documentation as DocumentationBuilderDto;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use Illuminate\Database\Eloquent\Relations\Relation;
|
|
|
|
final readonly class BuilderCommand
|
|
{
|
|
public function execute(Relation | Builder $query, DocumentationBuilderDto $documentationBuilderDto): Relation | Builder
|
|
{
|
|
return $query
|
|
->when($documentationBuilderDto->isPublic(), function (Builder $query) use ($documentationBuilderDto) {
|
|
$query->where('is_public', $documentationBuilderDto->isPublic());
|
|
})
|
|
->when($documentationBuilderDto->getCategoryId(), function (Builder $query) use ($documentationBuilderDto) {
|
|
$query->where('category_id', $documentationBuilderDto->getCategoryId()->getCategoryId());
|
|
});
|
|
}
|
|
}
|