Skip to content

Commit

Permalink
Allow model swapping (#1067)
Browse files Browse the repository at this point in the history
  • Loading branch information
driesvints committed Feb 19, 2021
1 parent 5fe1379 commit 6360472
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 3 deletions.
36 changes: 36 additions & 0 deletions src/Cashier.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,20 @@ class Cashier
*/
public static $deactivatePastDue = true;

/**
* The subscription model class name.
*
* @var string
*/
public static $subscriptionModel = Subscription::class;

/**
* The subscription item model class name.
*
* @var string
*/
public static $subscriptionItemModel = SubscriptionItem::class;

/**
* Get the billable entity instance by Stripe ID.
*
Expand Down Expand Up @@ -153,4 +167,26 @@ public static function keepPastDueSubscriptionsActive()

return new static;
}

/**
* Set the subscription model class name.
*
* @param string $subscriptionModel
* @return void
*/
public static function useSubscriptionModel($subscriptionModel)
{
static::$subscriptionModel = $subscriptionModel;
}

/**
* Set the subscription item model class name.
*
* @param string $subscriptionItemModel
* @return void
*/
public static function useSubscriptionItemModel($subscriptionItemModel)
{
static::$subscriptionItemModel = $subscriptionItemModel;
}
}
3 changes: 2 additions & 1 deletion src/Concerns/ManagesSubscriptions.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Laravel\Cashier\Concerns;

use Laravel\Cashier\Cashier;
use Laravel\Cashier\Subscription;
use Laravel\Cashier\SubscriptionBuilder;

Expand Down Expand Up @@ -102,7 +103,7 @@ public function subscription($name = 'default')
*/
public function subscriptions()
{
return $this->hasMany(Subscription::class, $this->getForeignKey())->orderBy('created_at', 'desc');
return $this->hasMany(Cashier::$subscriptionModel, $this->getForeignKey())->orderBy('created_at', 'desc');
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/Subscription.php
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public function owner()
*/
public function items()
{
return $this->hasMany(SubscriptionItem::class);
return $this->hasMany(Cashier::$subscriptionItemModel);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion src/SubscriptionItem.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class SubscriptionItem extends Model
*/
public function subscription()
{
return $this->belongsTo(Subscription::class);
return $this->belongsTo(Cashier::$subscriptionModel);
}

/**
Expand Down

0 comments on commit 6360472

Please sign in to comment.