Files
animethemes-server/app/GraphQL/Schema/Queries/Models/Pagination/Admin/FeaturedThemePaginationQuery.php
T

46 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace App\GraphQL\Schema\Queries\Models\Pagination\Admin;
use App\Contracts\GraphQL\Fields\DeprecatedField;
use App\Enums\Http\Api\Filter\ComparisonOperator;
use App\GraphQL\Schema\Queries\Models\Pagination\EloquentPaginationQuery;
use App\GraphQL\Schema\Types\Admin\FeaturedThemeType;
use App\Models\Admin\FeaturedTheme;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Date;
class FeaturedThemePaginationQuery extends EloquentPaginationQuery implements DeprecatedField
{
public function name(): string
{
return 'featuredthemePagination';
}
public function description(): string
{
return 'Returns a listing of featured theme resources given fields.';
}
/**
* The base return type of the query.
*/
public function baseType(): FeaturedThemeType
{
return new FeaturedThemeType();
}
protected function query(Builder $builder, array $args): Builder
{
return $builder->whereNotNull(FeaturedTheme::ATTRIBUTE_START_AT)
->whereDate(FeaturedTheme::ATTRIBUTE_START_AT, ComparisonOperator::LTE->value, Date::now());
}
public function deprecationReason(): string
{
return 'Internal use only';
}
}