import { type NextRequest, NextResponse } from "next/server" import Stripe from "stripe" export async function GET(request: NextRequest) { try { const stripeSecretKey = process.env.STRIPE_SECRET_KEY?.trim() if (!stripeSecretKey) { return NextResponse.json({ error: "STRIPE_SECRET_KEY environment variable is not set" }, { status: 500 }) } if (stripeSecretKey === "sk_test_your_secret_key_here" || stripeSecretKey.includes("your_secret_key_here")) { return NextResponse.json( { error: "Please replace the placeholder STRIPE_SECRET_KEY with your actual Stripe secret key from your Stripe dashboard", }, { status: 500 }, ) } const stripe = new Stripe(stripeSecretKey, { apiVersion: "2024-06-20", }) console.log("[v0] Fetching Stripe subscription products...") // Fetch all products const products = await stripe.products.list({ active: true, expand: ["data.default_price"], }) // Filter for subscription products and sort by price const subscriptionProducts = products.data .filter((product) => { const price = product.default_price as Stripe.Price return price && price.type === "recurring" && price.recurring?.interval === "month" }) .map((product) => { const price = product.default_price as Stripe.Price return { id: product.id, name: product.name, description: product.description, price: price.unit_amount, currency: price.currency, lookup_key: price.lookup_key, images: product.images, } }) .sort((a, b) => (a.price || 0) - (b.price || 0)) console.log("[v0] Found subscription products:", subscriptionProducts.length) return NextResponse.json({ products: subscriptionProducts }) } catch (error) { console.error("[v0] Error fetching subscription products:", error) return NextResponse.json( { error: error instanceof Error ? error.message : "Failed to fetch subscription products" }, { status: 500 }, ) } }