import { NextRequest, NextResponse } from 'next/server'
import pool from '@/lib/db'
import { validateAdminSecret } from '@/lib/auth'

// PUT: Update a single assumption — admin only
export async function PUT(request: NextRequest) {
  if (!validateAdminSecret(request)) {
    return NextResponse.json({ error: 'Unauthorized' }, { status: 401 })
  }
  try {
    const body = await request.json()
    const { scenarioId, key, value } = body

    if (!scenarioId || !key || value === undefined) {
      return NextResponse.json({ error: 'scenarioId, key, and value are required' }, { status: 400 })
    }

    const client = await pool.connect()
    try {
      const jsonValue = JSON.stringify(value)
      await client.query(
        'UPDATE pitch_fm_assumptions SET value = $1 WHERE scenario_id = $2 AND key = $3',
        [jsonValue, scenarioId, key]
      )

      return NextResponse.json({ success: true })
    } finally {
      client.release()
    }
  } catch (error) {
    console.error('Update assumption error:', error)
    return NextResponse.json({ error: 'Failed to update assumption' }, { status: 500 })
  }
}
