35 lines
		
	
	
		
			984 B
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			984 B
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| 
 | |
| namespace BookStack\Entities\Queries;
 | |
| 
 | |
| use BookStack\Entities\Models\Entity;
 | |
| use Illuminate\Database\Eloquent\Builder;
 | |
| 
 | |
| /**
 | |
|  * Interface for our classes which provide common queries for our
 | |
|  * entity objects. Ideally all queries for entities should run through
 | |
|  * these classes.
 | |
|  * Any added methods should return a builder instances to allow extension
 | |
|  * via building on the query, unless the method starts with 'find'
 | |
|  * in which case an entity object should be returned.
 | |
|  * (nullable unless it's a *OrFail method).
 | |
|  */
 | |
| interface ProvidesEntityQueries
 | |
| {
 | |
|     /**
 | |
|      * Start a new query for this entity type.
 | |
|      */
 | |
|     public function start(): Builder;
 | |
| 
 | |
|     /**
 | |
|      * Find the entity of the given ID, or return null if not found.
 | |
|      */
 | |
|     public function findVisibleById(int $id): ?Entity;
 | |
| 
 | |
|     /**
 | |
|      * Start a query for items that are visible, with selection
 | |
|      * configured for list display of this item.
 | |
|      */
 | |
|     public function visibleForList(): Builder;
 | |
| }
 |