Application::boot()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 3
nc 1
nop 0
dl 0
loc 5
c 0
b 0
f 0
cc 1
ccs 0
cts 3
cp 0
crap 2
rs 10
1
<?php
2
3
namespace Modules\Application\Entities;
4
5
use Foundation\Contracts\Ownable;
6
use Foundation\Traits\ModelFactory;
7
use Foundation\Traits\OwnedByUser;
8
use Jenssegers\Mongodb\Eloquent\Builder;
9
use Jenssegers\Mongodb\Eloquent\SoftDeletes;
10
use Modules\Application\Attributes\ApplicationAttributes;
11
use Modules\Machine\Entities\Machine;
12
use Modules\Mongo\Abstracts\MongoModel;
13
use Modules\User\Entities\User;
14
15
/**
16
 * Class Application.
17
 *
18
 * @property string $_id
19
 */
20
abstract class Application extends MongoModel implements Ownable, ApplicationAttributes
21
{
22
    use OwnedByUser, ModelFactory, SoftDeletes;
23
24
    /**
25
     * @var string
26
     */
27
    protected $collection = 'applications';
28
29
    /**
30
     * @var array
31
     */
32
    protected $guarded = [];
33
34
    protected $casts = [
35
        'active' => 'boolean',
36
    ];
37
38
    protected $dates = [
39
        'created_at',
40
        'updated_at',
41
        'deleted_at',
42
    ];
43
44
    protected static function boot()
45
    {
46
        parent::boot();
47
        static::addGlobalScope('type', function (Builder $builder) {
48
            $builder->where('type', get_short_class_name(static::class));
49
        });
50
    }
51
52
    public function user()
53
    {
54
        return $this->belongsTo(User::class);
55
    }
56
57
    public function machine()
58
    {
59
        return $this->belongsTo(Machine::class);
60
    }
61
}
62