ExpiredTrait::applyExpiredConditions()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
rs 10
c 1
b 0
f 0
1
<?php
2
3
namespace Jidaikobo\Kontiki\Models\Traits;
4
5
use Carbon\Carbon;
6
use Illuminate\Database\Query\Builder;
7
8
trait ExpiredTrait
9
{
10
    protected string $expiredField = 'expired_at';
11
12
    public function applyExpiredConditions(Builder $query): Builder
13
    {
14
        $currentTime = Carbon::now('UTC')->format('Y-m-d H:i:s');
15
        return $query->whereNotNull($this->expiredField)
16
            ->where($this->expiredField, '<=', $currentTime);
17
    }
18
19
    public function applyNotExpiredConditions(Builder $query): Builder
20
    {
21
        $currentTime = Carbon::now('UTC')->format('Y-m-d H:i:s');
22
        return $query->where(function ($q) use ($currentTime) {
23
            $q->whereNull($this->expiredField)
24
              ->orWhere($this->expiredField, '>', $currentTime);
25
        });
26
    }
27
}
28