Files
animethemes-server/app/Http/Api/Field/Aggregate/ExistsField.php
T
paranarimasuandGitHub 6015dcbbbf refactor: migration from laravel-enum package to native php enums (#585)
* refactor: migration from laravel-enum package to native php enums

* style: fix StyleCI findings
2023-06-09 14:29:10 -05:00

40 lines
936 B
PHP

<?php
declare(strict_types=1);
namespace App\Http\Api\Field\Aggregate;
use App\Enums\Http\Api\Field\AggregateFunction;
use App\Enums\Http\Api\Filter\Clause;
use App\Enums\Http\Api\QualifyColumn;
use App\Http\Api\Filter\BooleanFilter;
use App\Http\Api\Filter\Filter;
use App\Http\Api\Schema\Schema;
/**
* Class ExistsField.
*/
abstract class ExistsField extends AggregateField
{
/**
* Create a new field instance.
*
* @param Schema $schema
* @param string $relation
*/
public function __construct(Schema $schema, string $relation)
{
parent::__construct($schema, $relation, AggregateFunction::EXISTS, '*');
}
/**
* Get the filters that can be applied to the field.
*
* @return Filter
*/
public function getFilter(): Filter
{
return new BooleanFilter(key: $this->alias(), qualifyColumn: QualifyColumn::NO, clause: Clause::HAVING);
}
}