ExpiredTrait   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 17
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
dl 0
loc 17
rs 10
c 1
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A applyExpiredConditions() 0 5 1
A applyNotExpiredConditions() 0 6 1
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