import { NextRequest, NextResponse } from 'next/server'
import { z } from 'zod'
import { isMockPaymentsActive, mockChooseCardSetupOutcome } from '@/lib/integrations/synchron-payments'

const schema = z.object({
  setup_reference: z.string().trim().min(1).max(200),
  outcome: z.enum(['confirmed', 'failed', 'pending']),
})

/** Dev-only: the tester's choice on the mock card setup / CVV page. */
export async function POST(req: NextRequest) {
  if (process.env.NODE_ENV !== 'development' || !isMockPaymentsActive()) return NextResponse.json({ error: 'Not found' }, { status: 404 })
  const parsed = schema.safeParse(await req.json().catch(() => null))
  if (!parsed.success) return NextResponse.json({ error: 'Invalid request.' }, { status: 400 })
  mockChooseCardSetupOutcome(parsed.data.setup_reference, parsed.data.outcome)
  return NextResponse.json({ ok: true, result: { recorded: parsed.data.outcome } })
}
