-
Notifications
You must be signed in to change notification settings - Fork 97
/
Comment.php
112 lines (97 loc) · 2.15 KB
/
Comment.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php namespace October\Test\Models;
use Model;
use October\Test\Classes\StatusEnum;
/**
* Comment Model
*/
class Comment extends Model
{
use \October\Rain\Database\Traits\Validation;
use \October\Rain\Database\Traits\SoftDelete;
/**
* @var string The database table used by the model.
*/
public $table = 'october_test_comments';
/**
* @var array dates
*/
protected $dates = ['deleted_at'];
/**
* @var array casts
*/
protected $casts = [
// PHP 8.1
// 'status' => StatusEnum::class,
];
/**
* @var array fillable fields
*/
protected $fillable = ['name', 'content'];
/**
* @var array jsonable fields
*/
protected $jsonable = ['breakdown', 'mood', 'quotes'];
/**
* @var array rules
*/
public $rules = [
'name' => 'required',
];
/**
* @var array belongsTo
*/
public $belongsTo = [
'user' => User::class,
'post' => Post::class
];
public $attachOne = [
'photo' => \System\Models\File::class
];
/**
* @var array hasMany
*/
public $hasMany = [
'child_comments' => [
Comment::class,
'key' => 'parent_comment_id',
'scope' => 'withTrashed'
],
];
/**
* scopeIsVisibleWithTrashed
*/
public function scopeIsVisibleWithTrashed($query)
{
return $query->withTrashed()->isVisible();
}
/**
* scopeIsVisible
*/
public function scopeIsVisible($query)
{
return $query->where('is_visible', true);
}
/**
* getStatusOptions
*/
public function getStatusOptions()
{
return [
StatusEnum::DRAFT->value => 'Draft',
StatusEnum::APPROVED->value => 'Approved',
StatusEnum::REJECTED->value => 'Rejected',
StatusEnum::PUBLISHED->value => 'Published',
];
}
/**
* getFeelingzOptions
*/
public function getFeelingzOptions()
{
return [
'sad' => 'Sad',
'happy' => 'Happy',
'trolling' => "Just trollin' y'all",
];
}
}