123456789101112131415161718192021222324252627282930313233 |
- <?php
- namespace App\ModelFilters;
- use App\Models\Enums\ObjectApprovalStatus;
- use Carbon\Carbon;
- use EloquentFilter\ModelFilter;
- use Illuminate\Support\Facades\Auth;
- class ApprovalFilter extends ModelFilter
- {
- /**
- * Related Models that have ModelFilters as well as the method on the ModelFilter
- * As [relationMethod => [input_key1, input_key2]].
- *
- * @var array
- */
- public $relations = [];
- public function setup()
- {
- $tab = $this->query['tab'] ?? null;
- $this->where(function ($query) use ($tab) {
- return match ($tab) {
- 'wait_for_me' => $query->where("users", 'like', '%,'.Auth::id().',%')->where("status", ObjectApprovalStatus::DOING),
- 'approved' => $query,
- 'pr' => $query->where("created_at", Auth::id()),
- default => $query->where("created_at", Auth::id())->orWhere("users", 'like', '%,'.Auth::id().',%'),
- };
- });
- }
- }
|