Skip to content

Commit 3e370a4

Browse files
committed
handle eap to non-eap pricing change
1 parent b537e68 commit 3e370a4

File tree

3 files changed

+24
-12
lines changed

3 files changed

+24
-12
lines changed

.env.example

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,11 @@ STRIPE_KEY=
6363
STRIPE_SECRET=
6464
STRIPE_WEBHOOK_SECRET=
6565
STRIPE_MINI_PRICE_ID=
66+
STRIPE_MINI_PRICE_ID_EAP=
6667
STRIPE_PRO_PRICE_ID=
68+
STRIPE_PRO_PRICE_ID_EAP=
6769
STRIPE_MAX_PRICE_ID=
70+
STRIPE_MAX_PRICE_ID_EAP=
6871
STRIPE_FOREVER_PRICE_ID=
6972
STRIPE_TRIAL_PRICE_ID=
7073
STRIPE_MINI_PAYMENT_LINK=

app/Enums/Subscription.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,12 @@ public static function fromStripeSubscription(\Stripe\Subscription $subscription
2626
public static function fromStripePriceId(string $priceId): self
2727
{
2828
return match ($priceId) {
29-
config('subscriptions.plans.mini.stripe_price_id') => self::Mini,
30-
config('subscriptions.plans.pro.stripe_price_id') => self::Pro,
31-
config('subscriptions.plans.max.stripe_price_id') => self::Max,
29+
config('subscriptions.plans.mini.stripe_price_id'),
30+
config('subscriptions.plans.mini.stripe_price_id_eap') => self::Mini,
31+
config('subscriptions.plans.pro.stripe_price_id'),
32+
config('subscriptions.plans.pro.stripe_price_id_eap') => self::Pro,
33+
config('subscriptions.plans.max.stripe_price_id'),
34+
config('subscriptions.plans.max.stripe_price_id_eap') => self::Max,
3235
default => throw new RuntimeException("Unknown Stripe price id: {$priceId}"),
3336
};
3437
}
@@ -52,7 +55,10 @@ public function name(): string
5255

5356
public function stripePriceId(): string
5457
{
55-
return config("subscriptions.plans.{$this->value}.stripe_price_id");
58+
// EAP ends June 1st at midnight UTC
59+
return now()->isBefore('2025-06-01 00:00:00')
60+
? config("subscriptions.plans.{$this->value}.stripe_price_id_eap")
61+
: config("subscriptions.plans.{$this->value}.stripe_price_id");
5662
}
5763

5864
public function stripePaymentLink(): string

config/subscriptions.php

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,38 @@
22

33
return [
44
'plans' => [
5-
\App\Enums\Subscription::Mini->value => [
6-
'name' => 'Early Access (Mini)',
5+
'mini' => [
6+
'name' => 'Mini',
77
'stripe_price_id' => env('STRIPE_MINI_PRICE_ID'),
8+
'stripe_price_id_eap' => env('STRIPE_MINI_PRICE_ID_EAP'),
89
'stripe_payment_link' => env('STRIPE_MINI_PAYMENT_LINK'),
910
'anystack_product_id' => env('ANYSTACK_PRODUCT_ID'),
1011
'anystack_policy_id' => env('ANYSTACK_MINI_POLICY_ID'),
1112
],
12-
\App\Enums\Subscription::Pro->value => [
13-
'name' => 'Early Access (Pro)',
13+
'pro' => [
14+
'name' => 'Pro',
1415
'stripe_price_id' => env('STRIPE_PRO_PRICE_ID'),
16+
'stripe_price_id_eap' => env('STRIPE_PRO_PRICE_ID_EAP'),
1517
'stripe_payment_link' => env('STRIPE_PRO_PAYMENT_LINK'),
1618
'anystack_product_id' => env('ANYSTACK_PRODUCT_ID'),
1719
'anystack_policy_id' => env('ANYSTACK_PRO_POLICY_ID'),
1820
],
19-
\App\Enums\Subscription::Max->value => [
20-
'name' => 'Early Access (Max)',
21+
'max' => [
22+
'name' => 'Max',
2123
'stripe_price_id' => env('STRIPE_MAX_PRICE_ID'),
24+
'stripe_price_id_eap' => env('STRIPE_MAX_PRICE_ID_EAP'),
2225
'stripe_payment_link' => env('STRIPE_MAX_PAYMENT_LINK'),
2326
'anystack_product_id' => env('ANYSTACK_PRODUCT_ID'),
2427
'anystack_policy_id' => env('ANYSTACK_MAX_POLICY_ID'),
2528
],
26-
\App\Enums\Subscription::Forever->value => [
29+
'forever' => [
2730
'name' => 'Forever',
2831
'stripe_price_id' => env('STRIPE_FOREVER_PRICE_ID'),
2932
'stripe_payment_link' => env('STRIPE_FOREVER_PAYMENT_LINK'),
3033
'anystack_product_id' => env('ANYSTACK_PRODUCT_ID'),
3134
'anystack_policy_id' => env('ANYSTACK_FOREVER_POLICY_ID'),
3235
],
33-
\App\Enums\Subscription::Trial->value => [
36+
'trial' => [
3437
'name' => 'Trial',
3538
'stripe_price_id' => env('STRIPE_TRIAL_PRICE_ID'),
3639
'stripe_payment_link' => env('STRIPE_TRIAL_PAYMENT_LINK'),

0 commit comments

Comments
 (0)