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 - - )} )}