Test Setup Failed
Push — master ( fd6859...9ae6dd )
by Adam
13:36
created

Reservation   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 1 Features 0
Metric Value
eloc 12
c 2
b 1
f 0
dl 0
loc 45
ccs 19
cts 19
cp 1
rs 10
wmc 8

8 Methods

Rating   Name   Duplication   Size   Complexity  
A setDateStartAttribute() 0 3 1
A getDateEndAttribute() 0 3 1
A guest() 0 3 1
A setDateEndAttribute() 0 3 1
A getDateStartAttribute() 0 3 1
A scopeGetCurrentReservations() 0 4 1
A scopeGetFutureReservations() 0 3 1
A room() 0 3 1
1
<?php
2
3
namespace App\Models;
4
5
use Carbon\Carbon;
6
use Illuminate\Database\Eloquent\Model;
7
8
/**
9
 * App\Models\Reservation.
10
 *
11
 * @property int $id
12
 * @property int $room_id
13
 * @property int $guest_id
14
 * @property string $date_start
15
 * @property string $date_end
16
 * @property int $people
17
 * @property \Illuminate\Support\Carbon $created_at
18
 * @property \Illuminate\Support\Carbon $updated_at
19
 * @property-read \App\Models\Guest $guest
20
 * @property-read \App\Models\Room $room
21
 *
22
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation getCurrentReservations()
23
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation getFutureReservations()
24
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation whereCreatedAt($value)
25
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation whereDateEnd($value)
26
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation whereDateStart($value)
27
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation whereGuestId($value)
28
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation whereId($value)
29
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation wherePeople($value)
30
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation whereRoomId($value)
31
 * @method static \Illuminate\Database\Eloquent\Builder|\App\Models\Reservation whereUpdatedAt($value)
32
 * @mixin \Eloquent
33
 */
34
class Reservation extends Model
35
{
36
    protected $fillable = [
37
        'room_id', 'guest_id', 'date_start', 'date_end', 'people',
38
    ];
39
40 26
    public function setDateStartAttribute($value)
41
    {
42 26
        $this->attributes['date_start'] = Carbon::parse($value);
43 26
    }
44
45 26
    public function setDateEndAttribute($value)
46
    {
47 26
        $this->attributes['date_end'] = Carbon::parse($value);
48 26
    }
49
50 20
    public function getDateStartAttribute($value)
51
    {
52 20
        return Carbon::parse($value)->format('d.m.Y');
53
    }
54
55 20
    public function getDateEndAttribute($value)
56
    {
57 20
        return Carbon::parse($value)->format('d.m.Y');
58
    }
59
60 2
    public function scopeGetCurrentReservations($query)
61
    {
62 2
        return $query->where('date_end', '>=', Carbon::today())
63 2
            ->where('date_start', '<=', Carbon::today());
64
    }
65
66 2
    public function scopeGetFutureReservations($query)
67
    {
68 2
        return $query->where('date_start', '>', Carbon::today());
69
    }
70
71 24
    public function room()
72
    {
73 24
        return $this->belongsTo('App\Models\Room');
74
    }
75
76 27
    public function guest()
77
    {
78 27
        return $this->belongsTo('App\Models\Guest');
79
    }
80
}
81