Application   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 40
c 0
b 0
f 0
ccs 0
cts 9
cp 0
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A machine() 0 3 1
A boot() 0 5 1
A user() 0 3 1
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