|
12 | 12 | use Illuminate\Database\Eloquent\Relations\MorphMany; |
13 | 13 |
|
14 | 14 | /** |
15 | | - * @property Collection<array-key, Subscription> $subscription |
| 15 | + * @property Collection<array-key, Subscription> $subscriptions |
| 16 | + * @property Collection<array-key, Subscription> $subscribableSubscriptions |
16 | 17 | * @property ?Subscription $latestSubscription |
| 18 | + * @property ?Subscription $latestSubscribableSubscription |
17 | 19 | * @property ?Subscription $oldestSubscription |
| 20 | + * @property ?Subscription $oldestSubscribableSubscription |
18 | 21 | */ |
19 | 22 | trait HasSubscriptions |
20 | 23 | { |
21 | 24 | public function subscriptions(): MorphMany |
| 25 | + { |
| 26 | + return $this->subscribableSubscriptions(); |
| 27 | + } |
| 28 | + |
| 29 | + public function subscribableSubscriptions(): MorphMany |
22 | 30 | { |
23 | 31 | return $this->morphMany(Config::getSubscriptionClass(), 'subscribable'); |
24 | 32 | } |
25 | 33 |
|
26 | 34 | public function latestSubscription(): MorphOne |
27 | 35 | { |
28 | | - return $this->subscriptions()->one()->latestOfMany(); |
| 36 | + return $this->latestSubscribableSubscription(); |
| 37 | + } |
| 38 | + |
| 39 | + public function latestSubscribableSubscription(): MorphOne |
| 40 | + { |
| 41 | + return $this->subscribableSubscriptions()->one()->latestOfMany(); |
29 | 42 | } |
30 | 43 |
|
31 | 44 | public function oldestSubscription(): MorphOne |
32 | 45 | { |
33 | | - return $this->subscriptions()->one()->oldestOfMany(); |
| 46 | + return $this->oldestSubscribableSubscription(); |
| 47 | + } |
| 48 | + |
| 49 | + public function oldestSubscribableSubscription(): MorphOne |
| 50 | + { |
| 51 | + return $this->subscribableSubscriptions()->one()->oldestOfMany(); |
34 | 52 | } |
35 | 53 |
|
36 | 54 | public function subscribe(?Subscriber $subscriber = null, ?Plan $plan = null): Subscription |
|
0 commit comments