4
4
5
5
use Illuminate \Database \Eloquent \Model ;
6
6
use Illuminate \Support \Str ;
7
+ use Laravel \Scout \Searchable ;
7
8
use Lomkit \Rest \Actions \Actionable ;
8
9
use Lomkit \Rest \Concerns \Authorizable ;
9
10
use Lomkit \Rest \Concerns \PerformsModelOperations ;
13
14
use Lomkit \Rest \Concerns \Resource \Paginable ;
14
15
use Lomkit \Rest \Concerns \Resource \Relationable ;
15
16
use Lomkit \Rest \Concerns \Resource \Rulable ;
17
+ use Lomkit \Rest \Concerns \Resource \Scoutable ;
16
18
use Lomkit \Rest \Http \Requests \RestRequest ;
17
19
use Lomkit \Rest \Instructions \Instructionable ;
18
20
@@ -22,6 +24,7 @@ class Resource implements \JsonSerializable
22
24
use PerformsModelOperations;
23
25
use Relationable;
24
26
use Paginable;
27
+ use Scoutable;
25
28
use Rulable;
26
29
use ConfiguresRestParameters;
27
30
use Authorizable;
@@ -142,6 +145,11 @@ public function cacheAuthorizationFor()
142
145
return now ()->addMinutes (config ('rest.authorizations.cache.default ' , 5 ));
143
146
}
144
147
148
+ public function isModelSearchable ()
149
+ {
150
+ return in_array (Searchable::class, class_uses_recursive (static ::$ model ));
151
+ }
152
+
145
153
/**
146
154
* Serialize the resource into a JSON-serializable format.
147
155
*
@@ -152,13 +160,15 @@ public function jsonSerialize(): mixed
152
160
$ request = app (RestRequest::class);
153
161
154
162
return [
155
- 'actions ' => collect ($ this ->getActions ($ request ))->map ->jsonSerialize ()->toArray (),
156
- 'instructions ' => collect ($ this ->getInstructions ($ request ))->map ->jsonSerialize ()->toArray (),
157
- 'fields ' => $ this ->getFields ($ request ),
158
- 'limits ' => $ this ->getLimits ($ request ),
159
- 'scopes ' => $ this ->getScopes ($ request ),
160
- 'relations ' => collect ($ this ->getRelations ($ request ))->map ->jsonSerialize ()->toArray (),
161
- 'rules ' => [
163
+ 'actions ' => collect ($ this ->getActions ($ request ))->map ->jsonSerialize ()->toArray (),
164
+ 'instructions ' => collect ($ this ->getInstructions ($ request ))->map ->jsonSerialize ()->toArray (),
165
+ 'scout_instructions ' => collect ($ this ->getScoutInstructions ($ request ))->map ->jsonSerialize ()->toArray (),
166
+ 'fields ' => $ this ->getFields ($ request ),
167
+ 'scout_fields ' => $ this ->getScoutFields ($ request ),
168
+ 'limits ' => $ this ->getLimits ($ request ),
169
+ 'scopes ' => $ this ->getScopes ($ request ),
170
+ 'relations ' => collect ($ this ->getRelations ($ request ))->map ->jsonSerialize ()->toArray (),
171
+ 'rules ' => [
162
172
'all ' => $ this ->rules ($ request ),
163
173
'create ' => $ this ->createRules ($ request ),
164
174
'update ' => $ this ->updateRules ($ request ),
0 commit comments