/** * Demo Data Seed API Endpoint * * This endpoint seeds demo data via the same storage mechanism as real customer data. * Demo data is NOT hardcoded - it goes through the normal API/database path. */ import { NextRequest, NextResponse } from 'next/server' import { generateDemoState } from '@/lib/sdk/demo-data' // In-memory store (same as state endpoint - will be replaced with PostgreSQL) declare global { // eslint-disable-next-line no-var var demoStateStore: Map | undefined } if (!global.demoStateStore) { global.demoStateStore = new Map() } const stateStore = global.demoStateStore export async function POST(request: NextRequest) { try { const body = await request.json() const { tenantId = 'demo-tenant', userId = 'demo-user' } = body // Generate demo state using the seed data templates const demoState = generateDemoState(tenantId, userId) // Store via the same mechanism as real data const storedState = { state: demoState, version: 1, updatedAt: new Date(), } stateStore.set(tenantId, storedState) return NextResponse.json({ success: true, message: `Demo data seeded for tenant ${tenantId}`, tenantId, version: 1, }) } catch (error) { console.error('Failed to seed demo data:', error) return NextResponse.json( { success: false, error: error instanceof Error ? error.message : 'Unknown error', }, { status: 500 } ) } } export async function GET(request: NextRequest) { const { searchParams } = new URL(request.url) const tenantId = searchParams.get('tenantId') || 'demo-tenant' const stored = stateStore.get(tenantId) if (!stored) { return NextResponse.json({ hasData: false, tenantId, }) } return NextResponse.json({ hasData: true, tenantId, version: stored.version, updatedAt: stored.updatedAt, }) }