<?php

declare(strict_types=1);

namespace App\Filters;

use Illuminate\Database\Eloquent\Builder;

class SitesFilter extends QueryFilter
{
    public function q(string $text = null)
    {
        return $this->builder->when(
            $text,
            static function (Builder $query) use ($text) {
                $text = '%' . $text . '%';
                $query
                    ->where('title', 'LIKE', $text)
                    ->orWhere('url', 'LIKE', $text)
                    ->orWhereHas('manager', static function ($query) use ($text) {
                        $query->where('name', 'LIKE', $text);
                    });
            }
        );
    }

    public function title(string $title = null)
    {
        return $this->builder->when(
            $title,
            static function (Builder $query) use ($title) {
                $query->where('title', $title);
            }
        );
    }
}