// Start a card update: returns { clientSecret, publishableKey } for the portal // to mount Stripe Elements. Proxies POST /tenants/:slug/payment-method/setup-intent. import { getUserSession } from 'nuxt-oidc-auth/runtime/server/utils/session.js' export default defineEventHandler(async (event) => { const session = await getUserSession(event).catch(() => null) const accessToken = (session as { accessToken?: string } | null)?.accessToken if (!accessToken) { throw createError({ statusCode: 401, statusMessage: 'Not signed in' }) } const slug = getRouterParam(event, 'slug') const base = process.env.PLATFORM_API_INTERNAL_URL ?? 'http://platform-api:3001' return $fetch(`${base}/tenants/${slug}/payment-method/setup-intent`, { method: 'POST', headers: { Authorization: `Bearer ${accessToken}` }, }) })