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

Reservation::room()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
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