From 3e370a4ed456448ba3649a439acfbb3e8075bb96 Mon Sep 17 00:00:00 2001
From: Steven Fox <62109327+steven-fox@users.noreply.github.com>
Date: Fri, 30 May 2025 15:40:55 -0400
Subject: [PATCH 1/2] handle eap to non-eap pricing change
---
.env.example | 3 +++
app/Enums/Subscription.php | 14 ++++++++++----
config/subscriptions.php | 19 +++++++++++--------
3 files changed, 24 insertions(+), 12 deletions(-)
diff --git a/.env.example b/.env.example
index 2002df16..d66a920f 100644
--- a/.env.example
+++ b/.env.example
@@ -63,8 +63,11 @@ STRIPE_KEY=
STRIPE_SECRET=
STRIPE_WEBHOOK_SECRET=
STRIPE_MINI_PRICE_ID=
+STRIPE_MINI_PRICE_ID_EAP=
STRIPE_PRO_PRICE_ID=
+STRIPE_PRO_PRICE_ID_EAP=
STRIPE_MAX_PRICE_ID=
+STRIPE_MAX_PRICE_ID_EAP=
STRIPE_FOREVER_PRICE_ID=
STRIPE_TRIAL_PRICE_ID=
STRIPE_MINI_PAYMENT_LINK=
diff --git a/app/Enums/Subscription.php b/app/Enums/Subscription.php
index d767f438..f336b0b5 100644
--- a/app/Enums/Subscription.php
+++ b/app/Enums/Subscription.php
@@ -26,9 +26,12 @@ public static function fromStripeSubscription(\Stripe\Subscription $subscription
public static function fromStripePriceId(string $priceId): self
{
return match ($priceId) {
- config('subscriptions.plans.mini.stripe_price_id') => self::Mini,
- config('subscriptions.plans.pro.stripe_price_id') => self::Pro,
- config('subscriptions.plans.max.stripe_price_id') => self::Max,
+ config('subscriptions.plans.mini.stripe_price_id'),
+ config('subscriptions.plans.mini.stripe_price_id_eap') => self::Mini,
+ config('subscriptions.plans.pro.stripe_price_id'),
+ config('subscriptions.plans.pro.stripe_price_id_eap') => self::Pro,
+ config('subscriptions.plans.max.stripe_price_id'),
+ config('subscriptions.plans.max.stripe_price_id_eap') => self::Max,
default => throw new RuntimeException("Unknown Stripe price id: {$priceId}"),
};
}
@@ -52,7 +55,10 @@ public function name(): string
public function stripePriceId(): string
{
- return config("subscriptions.plans.{$this->value}.stripe_price_id");
+ // EAP ends June 1st at midnight UTC
+ return now()->isBefore('2025-06-01 00:00:00')
+ ? config("subscriptions.plans.{$this->value}.stripe_price_id_eap")
+ : config("subscriptions.plans.{$this->value}.stripe_price_id");
}
public function stripePaymentLink(): string
diff --git a/config/subscriptions.php b/config/subscriptions.php
index ea97182f..2ab453dd 100644
--- a/config/subscriptions.php
+++ b/config/subscriptions.php
@@ -2,35 +2,38 @@
return [
'plans' => [
- \App\Enums\Subscription::Mini->value => [
- 'name' => 'Early Access (Mini)',
+ 'mini' => [
+ 'name' => 'Mini',
'stripe_price_id' => env('STRIPE_MINI_PRICE_ID'),
+ 'stripe_price_id_eap' => env('STRIPE_MINI_PRICE_ID_EAP'),
'stripe_payment_link' => env('STRIPE_MINI_PAYMENT_LINK'),
'anystack_product_id' => env('ANYSTACK_PRODUCT_ID'),
'anystack_policy_id' => env('ANYSTACK_MINI_POLICY_ID'),
],
- \App\Enums\Subscription::Pro->value => [
- 'name' => 'Early Access (Pro)',
+ 'pro' => [
+ 'name' => 'Pro',
'stripe_price_id' => env('STRIPE_PRO_PRICE_ID'),
+ 'stripe_price_id_eap' => env('STRIPE_PRO_PRICE_ID_EAP'),
'stripe_payment_link' => env('STRIPE_PRO_PAYMENT_LINK'),
'anystack_product_id' => env('ANYSTACK_PRODUCT_ID'),
'anystack_policy_id' => env('ANYSTACK_PRO_POLICY_ID'),
],
- \App\Enums\Subscription::Max->value => [
- 'name' => 'Early Access (Max)',
+ 'max' => [
+ 'name' => 'Max',
'stripe_price_id' => env('STRIPE_MAX_PRICE_ID'),
+ 'stripe_price_id_eap' => env('STRIPE_MAX_PRICE_ID_EAP'),
'stripe_payment_link' => env('STRIPE_MAX_PAYMENT_LINK'),
'anystack_product_id' => env('ANYSTACK_PRODUCT_ID'),
'anystack_policy_id' => env('ANYSTACK_MAX_POLICY_ID'),
],
- \App\Enums\Subscription::Forever->value => [
+ 'forever' => [
'name' => 'Forever',
'stripe_price_id' => env('STRIPE_FOREVER_PRICE_ID'),
'stripe_payment_link' => env('STRIPE_FOREVER_PAYMENT_LINK'),
'anystack_product_id' => env('ANYSTACK_PRODUCT_ID'),
'anystack_policy_id' => env('ANYSTACK_FOREVER_POLICY_ID'),
],
- \App\Enums\Subscription::Trial->value => [
+ 'trial' => [
'name' => 'Trial',
'stripe_price_id' => env('STRIPE_TRIAL_PRICE_ID'),
'stripe_payment_link' => env('STRIPE_TRIAL_PAYMENT_LINK'),
From 93dcd47af9b48b7ffbff8d3661e51180209b41cd Mon Sep 17 00:00:00 2001
From: Steven Fox <62109327+steven-fox@users.noreply.github.com>
Date: Fri, 30 May 2025 15:47:48 -0400
Subject: [PATCH 2/2] add testing eap env vars
---
phpunit.xml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/phpunit.xml b/phpunit.xml
index ab40d840..368547a6 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -33,6 +33,9 @@
+
+
+