Passed
Push — master ( 0113cd...e00cb3 )
by Nasrul Hazim
05:07
created

Phone::type()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace CleaniqueCoders\Profile\Models;
4
5
use Illuminate\Database\Eloquent\Model;
6
use Illuminate\Database\Query\Builder;
7
8
class Phone extends Model
9
{
10
    protected $guarded = ['id'];
11
12
    /**
13
     * Get the route key for the model.
14
     *
15
     * @return string
16
     */
17
    public function getRouteKeyName()
18
    {
19
        return 'hashslug';
20
    }
21
22
    /**
23
     * Get all of the owning phoneable models.
24
     */
25
    public function phoneable()
26
    {
27
        return $this->morphTo();
28
    }
29
30
    /**
31
     * Phone Type.
32
     *
33
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
34
     */
35
    public function type()
36
    {
37
        return $this->belongsTo(PhoneType::class, 'phone_type_id')->withDefault();
38
    }
39
40
    /**
41
     * Get Home Phone Numbers.
42
     *
43
     * @param \Illuminate\Database\Query\Builder $query
44
     *
45
     * @return \Illuminate\Database\Query\Builder
46
     */
47
    public function scopeHome(Builder $query)
48
    {
49
        return $query->where('phone_type_id', PhoneType::HOME);
50
    }
51
52
    /**
53
     * Get Mobile Phone Numbers.
54
     *
55
     * @param \Illuminate\Database\Query\Builder $query
56
     *
57
     * @return \Illuminate\Database\Query\Builder
58
     */
59
    public function scopeMobile(Builder $query)
60
    {
61
        return $query->where('phone_type_id', PhoneType::Mobile);
0 ignored issues
show
Bug introduced by
The constant CleaniqueCoders\Profile\Models\PhoneType::Mobile was not found. Maybe you did not declare it correctly or list all dependencies?
Loading history...
62
    }
63
64
    /**
65
     * Get Office Phone Numbers.
66
     *
67
     * @param \Illuminate\Database\Query\Builder $query
68
     *
69
     * @return \Illuminate\Database\Query\Builder
70
     */
71
    public function scopeOffice(Builder $query)
72
    {
73
        return $query->where('phone_type_id', PhoneType::OFFICE);
74
    }
75
76
    /**
77
     * Get Other Phone Numbers.
78
     *
79
     * @param \Illuminate\Database\Query\Builder $query
80
     *
81
     * @return \Illuminate\Database\Query\Builder
82
     */
83
    public function scopeOther(Builder $query)
84
    {
85
        return $query->where('phone_type_id', PhoneType::OTHER);
86
    }
87
88
    /**
89
     * Get Fax Phone Numbers.
90
     *
91
     * @param \Illuminate\Database\Query\Builder $query
92
     *
93
     * @return \Illuminate\Database\Query\Builder
94
     */
95
    public function scopeFax(Builder $query)
96
    {
97
        return $query->where('phone_type_id', PhoneType::FAX);
98
    }
99
}
100