Path   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 83
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 2
lcom 0
cbo 3
dl 0
loc 83
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A requests() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Rinvex\Statistics\Models;
6
7
use Illuminate\Database\Eloquent\Model;
8
use Rinvex\Cacheable\CacheableEloquent;
9
use Rinvex\Support\Traits\ValidatingTrait;
10
use Illuminate\Database\Eloquent\Relations\HasMany;
11
12
class Path extends Model
13
{
14
    use ValidatingTrait;
15
    use CacheableEloquent;
16
17
    /**
18
     * {@inheritdoc}
19
     */
20
    protected $fillable = [
21
        'host',
22
        'locale',
23
        'path',
24
        'method',
25
        'parameters',
26
    ];
27
28
    /**
29
     * {@inheritdoc}
30
     */
31
    protected $casts = [
32
        'host' => 'string',
33
        'locale' => 'string',
34
        'path' => 'string',
35
        'method' => 'string',
36
        'parameters' => 'json',
37
    ];
38
39
    /**
40
     * {@inheritdoc}
41
     */
42
    public $timestamps = false;
43
44
    /**
45
     * {@inheritdoc}
46
     */
47
    protected $observables = [
48
        'validating',
49
        'validated',
50
    ];
51
52
    /**
53
     * The default rules that the model will validate against.
54
     *
55
     * @var array
56
     */
57
    protected $rules = [
58
        'host' => 'required|string',
59
        'locale' => 'required|string',
60
        'path' => 'required|string',
61
        'method' => 'required|string',
62
        'parameters' => 'nullable|array',
63
    ];
64
65
    /**
66
     * Whether the model should throw a
67
     * ValidationException if it fails validation.
68
     *
69
     * @var bool
70
     */
71
    protected $throwValidationExceptions = true;
72
73
    /**
74
     * Create a new Eloquent model instance.
75
     *
76
     * @param array $attributes
77
     */
78
    public function __construct(array $attributes = [])
79
    {
80
        parent::__construct($attributes);
81
82
        $this->setTable(config('rinvex.statistics.tables.paths'));
83
    }
84
85
    /**
86
     * The path may have many requests.
87
     *
88
     * @return \Illuminate\Database\Eloquent\Relations\HasMany
89
     */
90
    public function requests(): HasMany
91
    {
92
        return $this->hasMany(config('rinvex.statistics.models.request'), 'path_id', 'id');
93
    }
94
}
95