1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-02-06 19:34:03 +00:00

Change terminology to pending

This commit is contained in:
j.stein 2022-02-09 22:55:03 +01:00
parent c8eadeb363
commit 500b2538fc
20 changed files with 387 additions and 385 deletions

View file

@ -1,95 +0,0 @@
<?php
declare(strict_types=1);
namespace Stancl\Tenancy\Database\Concerns;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;
class ReadiedScope implements Scope
{
/**
* All of the extensions to be added to the builder.
*
* @var string[]
*/
protected $extensions = ['WithReadied', 'WithoutReadied', 'OnlyReadied'];
/**
* Apply the scope to a given Eloquent query builder.
*
* @param Builder $builder
* @param Model $model
* @return void
*/
public function apply(Builder $builder, Model $model)
{
$builder->when(!config('tenancy.readied.include_in_queries'), function (Builder $builder){
$builder->whereNull('data->readied');
});
}
/**
* Extend the query builder with the needed functions.
*
* @param \Illuminate\Database\Eloquent\Builder $builder
* @return void
*/
public function extend(Builder $builder)
{
foreach ($this->extensions as $extension) {
$this->{"add{$extension}"}($builder);
}
}
/**
* Add the with-readied extension to the builder.
*
* @param \Illuminate\Database\Eloquent\Builder $builder
* @return void
*/
protected function addWithReadied(Builder $builder)
{
$builder->macro('withReadied', function (Builder $builder, $withReadied = true) {
if (! $withReadied) {
return $builder->withoutReadied();
}
return $builder->withoutGlobalScope($this);
});
}
/**
* Add the without-readied extension to the builder.
*
* @param \Illuminate\Database\Eloquent\Builder $builder
* @return void
*/
protected function addWithoutReadied(Builder $builder)
{
$builder->macro('withoutReadied', function (Builder $builder) {
$builder->withoutGlobalScope($this)->whereNull('data->readied');
return $builder;
});
}
/**
* Add the only-readied extension to the builder.
*
* @param \Illuminate\Database\Eloquent\Builder $builder
* @return void
*/
protected function addOnlyReadied(Builder $builder)
{
$builder->macro('onlyReadied', function (Builder $builder) {
$builder->withoutGlobalScope($this)->whereNotNull('data->readied');
return $builder;
});
}
}