diff --git a/apps/api/src/routers/stripe.ts b/apps/api/src/routers/stripe.ts
index 190201a..3e9d09d 100644
--- a/apps/api/src/routers/stripe.ts
+++ b/apps/api/src/routers/stripe.ts
@@ -68,6 +68,23 @@ const createCheckoutSession = (
return c.json({ error: "priceId is required" }, 400);
}
+ const { data: price } = await supabase
+ .schema("stripe")
+ .from("prices")
+ .select("*")
+ .eq("id", priceId)
+ .maybeSingle();
+
+ if (!price) {
+ return c.json({ error: "Price not found" }, 404);
+ }
+
+ const allowedInfiniteUsers = ["arbelleville@gmail.com", "baptiste.belleville74@gmail.com"];
+
+ if (price.unit_amount === 0 && !allowedInfiniteUsers.includes(user.email!)) {
+ return c.json({ error: "This price is not available" }, 400);
+ }
+
try {
// Get or create Stripe customer
let customerId: string;
diff --git a/apps/main/src/components/SubscriptionCard.tsx b/apps/main/src/components/SubscriptionCard.tsx
index 5cac9b7..6115856 100644
--- a/apps/main/src/components/SubscriptionCard.tsx
+++ b/apps/main/src/components/SubscriptionCard.tsx
@@ -7,7 +7,6 @@ import {
CardHeader,
CardTitle,
} from "@xtablo/ui/components/card";
-import { Text } from "@xtablo/ui/components/typography";
import { AlertCircle, CheckCircle2, CreditCard, Loader2Icon, Sparkles } from "lucide-react";
import {
useCancelSubscription,
@@ -38,7 +37,8 @@ export function SubscriptionCard() {
const isBeta = user.plan === "beta";
// Replace with your actual price ID from Stripe Dashboard
- const STANDARD_MONTHLY_PRICE_ID = import.meta.env.VITE_STRIPE_STANDARD_MONTHLY_PRICE_ID || "";
+
+ const priceId = import.meta.env.VITE_STRIPE_STANDARD_MONTHLY_PRICE_ID || "";
const getStatusBadge = () => {
// Check for beta plan first
@@ -156,12 +156,12 @@ export function SubscriptionCard() {
- {!STANDARD_MONTHLY_PRICE_ID && (
-
- Configuration Stripe requise
-
- )}
)}