Completed
Push — master ( edb9ee...b465c5 )
by
unknown
10:14
created

Locale::scopeAvailableInApi()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 2
1
<?php
2
3
namespace BBSLab\NovaTranslation\Models;
4
5
use Illuminate\Database\Eloquent\Model;
6
7
/**
8
 * @property int $id
9
 * @property string $iso
10
 * @property string $label
11
 * @property int $fallback_id
12
 * @property \BBS\Nova\Translation\Models\Locale $fallback
13
 * @property bool $available_in_api
14
 * @property \Illuminate\Support\Carbon $created_at
15
 * @property \Illuminate\Support\Carbon $updated_at
16
 */
17
class Locale extends Model
18
{
19
    /**
20
     * {@inheritdoc}
21
     */
22
    protected $table = 'locales';
23
24
    /**
25
     * {@inheritdoc}
26
     */
27
    protected $fillable = [
28
        'iso',
29
        'label',
30
        'fallback_id',
31
        'available_in_api',
32
    ];
33
34
    /**
35
     * {@inheritdoc}
36
     */
37
    protected $casts = [
38
        'fallback_id' => 'integer',
39
        'available_in_api' => 'boolean',
40
    ];
41
42
    /**
43
     * Scope a query to only include locales available in API.
44
     *
45
     * @param  \Illuminate\Database\Eloquent\Builder  $query
46
     * @param  array  $args
47
     * @return \Illuminate\Database\Eloquent\Builder
48
     */
49
    public function scopeAvailableInApi($query, array $args = [])
50
    {
51
        $availableInApi = isset($args['available_in_api']) ? ! empty($args['available_in_api']) : true;
52
53
        return $query->where('available_in_api', '=', $availableInApi);
54
    }
55
56
    /**
57
     * Locale fallback relationship.
58
     *
59
     * @return \Illuminate\Database\Eloquent\Relationships\BelongsTo
60
     */
61
    public function fallback()
62
    {
63
        return $this->belongsTo(static::class, 'fallback_id');
64
    }
65
}
66