Passed
Push — task/experience-skills ( d76f21 )
by Grant
05:20
created

Skill::experiences_education()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace App\Models;
4
5
use Backpack\CRUD\app\Models\Traits\CrudTrait;
6
use Backpack\CRUD\app\Models\Traits\SpatieTranslatable\HasTranslations;
7
8
/**
9
 * Class Skill
10
 *
11
 * @property int $id
12
 * @property string $name
13
 * @property string $description
14
 * @property int $skill_type_id
15
 * @property boolean $is_culture_skill
16
 * @property boolean $is_future_skill
17
 * @property \Jenssegers\Date\Date $created_at
18
 * @property \Jenssegers\Date\Date $updated_at
19
 *
20
 * @property \App\Models\Lookup\SkillType $skill_type
21
 * @property \Illuminate\Database\Eloquent\Collection $skill_declarations
22
 * @property \Illuminate\Database\Eloquent\Collection $classifications
23
 * @property \App\Models\ExperienceAward|\App\Models\ExperienceCommunity|\App\Models\ExperienceEducation|\App\Models\ExperiencePersonal|\App\Models\ExperienceWork $experience
24
 * @property \Illuminate\Database\Eloquent\Collection $experiences_work
25
 * @property \Illuminate\Database\Eloquent\Collection $experiences_personal
26
 * @property \Illuminate\Database\Eloquent\Collection $experiences_education
27
 * @property \Illuminate\Database\Eloquent\Collection $experiences_award
28
 * @property \Illuminate\Database\Eloquent\Collection $experiences_community
29
 */
30
class Skill extends BaseModel
31
{
32
    use CrudTrait;
33
    use HasTranslations;
34
35
    protected $casts = [
36
        'skill_type_id' => 'int',
37
        'is_culture_skill' => 'boolean',
38
        'is_future_skill' => 'boolean',
39
    ];
40
41
    protected $fillable = [
42
        'name',
43
        'description',
44
        'skill_type_id',
45
        'is_culture_skill',
46
        'is_future_skill',
47
        'classifications'
48
    ];
49
50
    public $translatable = [
51
        'name',
52
        'description',
53
    ];
54
55
    public function skill_type() // phpcs:ignore
56
    {
57
        return $this->belongsTo(\App\Models\Lookup\SkillType::class);
58
    }
59
60
    public function skill_declarations() // phpcs:ignore
61
    {
62
        return $this->hasMany(\App\Models\SkillDeclaration::class);
63
    }
64
65
    public function classifications() // phpcs:ignore
66
    {
67
        return $this->belongsToMany(\App\Models\Classification::class)->withTimestamps();
68
    }
69
70
    // Version 2 application models.
71
72
    public function experiences_work() // phpcs:ignore
73
    {
74
        return $this->morphedByMany(\App\Models\ExperienceWork::class, 'experience', 'experience_skills');
75
    }
76
77
    public function experiences_personal() // phpcs:ignore
78
    {
79
        return $this->morphedByMany(\App\Models\ExperiencePersonal::class, 'experience', 'experience_skills');
80
    }
81
82
    public function experiences_education() // phpcs:ignore
83
    {
84
        return $this->morphedByMany(\App\Models\ExperienceEducation::class, 'experience', 'experience_skills');
85
    }
86
87
    public function experiences_award() // phpcs:ignore
88
    {
89
        return $this->morphedByMany(\App\Models\ExperienceAward::class, 'experience', 'experience_skills');
90
    }
91
92
    public function experiences_community() // phpcs:ignore
93
    {
94
        return $this->morphedByMany(\App\Models\ExperienceCommunity::class, 'experience', 'experience_skills');
95
    }
96
97
    /**
98
     * Check for a null "is_culture_skill" and pass false instead.
99
     *
100
     * @param mixed $value Incoming value for the "is_culture_skill" attribute.
101
     *
102
     * @return void
103
     */
104
    public function setIsCultureSkillAttribute($value): void
105
    {
106
        if ($value === null) {
107
            $value = false;
108
        }
109
        $this->attributes['is_culture_skill'] = $value;
0 ignored issues
show
Bug Best Practice introduced by
The property attributes does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
110
    }
111
112
    /**
113
     * Check for a null "is_future_skill" and pass false instead.
114
     *
115
     * @param mixed $value Incoming value for the "is_future_skill" attribute.
116
     *
117
     * @return void
118
     */
119
    public function setIsFutureSkillAttribute($value): void
120
    {
121
        if ($value === null) {
122
            $value = false;
123
        }
124
        $this->attributes['is_future_skill'] = $value;
0 ignored issues
show
Bug Best Practice introduced by
The property attributes does not exist. Although not strictly required by PHP, it is generally a best practice to declare properties explicitly.
Loading history...
125
    }
126
}
127