Files
my-projects-website/app/application/app/Services/Documentation/BuilderCommand.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());
});
}
}