<?php

namespace App\Libs\Contracts\Backoffice;

use Illuminate\Database\Eloquent\Builder;

interface ListableField
{

    /**
     * Fills the query with select field
     *
     * @return Builder
     */
    public function buildSelect(Builder $query);

    /**
     * Fills the query where clause
     *
     * @return Builder
     */
    public function buildWhere(Builder $query, $searchPhrase);

    /**
     * Fills the query with orderBy field
     *
     * @return Builder
     */
    public function buildOrder(Builder $query, $sortOrder);

    /**
     * return the th cell for the grid header
     *
     * @return Builder
     */
    public function toGridHeader();


}
