33namespace Oddvalue \LaravelDrafts \Concerns ;
44
55use Carbon \CarbonInterface ;
6+ use Closure ;
67use Illuminate \Contracts \Database \Query \Builder ;
78use Illuminate \Database \Eloquent \Model ;
89use Illuminate \Database \Eloquent \Relations \BelongsToMany ;
1213use Illuminate \Database \Eloquent \Relations \MorphToMany ;
1314use Illuminate \Support \Arr ;
1415use Illuminate \Support \Str ;
16+ use Oddvalue \LaravelDrafts \Contacts \Draftable ;
1517use Oddvalue \LaravelDrafts \Facades \LaravelDrafts ;
1618
1719/**
18- * @method void Current( Builder $query )
19- * @method void WithoutCurrent( Builder $query )
20- * @method void ExcludeRevision( Builder $query, int | Model $exclude)
20+ * @method \Illuminate\Database\Eloquent\ Builder<Draftable> current( )
21+ * @method \Illuminate\Database\Eloquent\ Builder<Draftable> withoutCurrent( )
22+ * @method \Illuminate\Database\Eloquent\ Builder<Draftable> excludeRevision( int | Model $exclude)
2123 */
2224trait HasDrafts
2325{
@@ -43,7 +45,7 @@ public function initializeHasDrafts(): void
4345
4446 public static function bootHasDrafts (): void
4547 {
46- static ::creating (function ($ model ) {
48+ static ::creating (function (Draftable | Model $ model ) {
4749 $ model ->{$ model ->getIsCurrentColumn ()} = true ;
4850 $ model ->setPublisher ();
4951 $ model ->generateUuid ();
@@ -52,26 +54,26 @@ public static function bootHasDrafts(): void
5254 }
5355 });
5456
55- static ::updating (function ($ model ) {
57+ static ::updating (function (Draftable | Model $ model ) {
5658 $ model ->newRevision ();
5759 });
5860
59- static ::publishing (function ($ model ) {
61+ static ::publishing (function (Draftable | Model $ model ) {
6062 $ model ->setLive ();
6163 });
6264
63- static ::deleted (function ($ model ) {
65+ static ::deleted (function (Draftable | Model $ model ) {
6466 $ model ->revisions ()->delete ();
6567 });
6668
6769 if (method_exists (static ::class, 'restored ' )) {
68- static ::restored (function ($ model ) {
70+ static ::restored (function (Draftable | Model $ model ) {
6971 $ model ->revisions ()->restore ();
7072 });
7173 }
7274
7375 if (method_exists (static ::class, 'forceDeleted ' )) {
74- static ::forceDeleted (function ($ model ) {
76+ static ::forceDeleted (function (Draftable | Model $ model ) {
7577 $ model ->revisions ()->forceDelete ();
7678 });
7779 }
@@ -262,12 +264,12 @@ public function save(array $options = []): bool
262264 return parent ::save ($ options );
263265 }
264266
265- public static function savingAsDraft (string | \ Closure $ callback ): void
267+ public static function savingAsDraft (string | Closure $ callback ): void
266268 {
267269 static ::registerModelEvent ('savingAsDraft ' , $ callback );
268270 }
269271
270- public static function savedAsDraft (string | \ Closure $ callback ): void
272+ public static function savedAsDraft (string | Closure $ callback ): void
271273 {
272274 static ::registerModelEvent ('drafted ' , $ callback );
273275 }
0 commit comments