34 lines
		
	
	
		
			734 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			734 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace App\Services\QueryRequestModifiers\Post;
 | 
						|
 | 
						|
use App\Http\Requests\Post\ListPostRequest;
 | 
						|
use App\Models\Post;
 | 
						|
use App\Services\QueryRequestModifiers\Orderable;
 | 
						|
use Illuminate\Database\Eloquent\Builder;
 | 
						|
 | 
						|
class PostOrder
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * @use Orderable<Post, PostOrderDTO>
 | 
						|
     */
 | 
						|
    use Orderable;
 | 
						|
 | 
						|
 | 
						|
    /**
 | 
						|
     * @param Builder<Post> $query
 | 
						|
     * @return Builder<Post>
 | 
						|
     */
 | 
						|
    public function apply(Builder $query, ?PostOrderDTO $filters): Builder
 | 
						|
    {
 | 
						|
        return $this->applyOrderable($query, $filters);
 | 
						|
    }
 | 
						|
 | 
						|
    public function makeFromRequest(ListPostRequest $request): ?PostOrderDTO
 | 
						|
    {
 | 
						|
        return $this->makeOrderableFromRequest($request, PostOrderDTO::class);
 | 
						|
    }
 | 
						|
}
 |