import { NextRequest, NextResponse } from 'next/server'
import pool from '@/lib/db'
import { getSessionFromRequest } from '@/lib/session'

export async function POST(req: NextRequest, { params }: { params: Promise<{ id: string }> }) {
  const user = await getSessionFromRequest(req)
  if (!user) return NextResponse.json({ error: 'Não autorizado' }, { status: 401 })

  const { id } = await params
  const [userRows] = await pool.execute<any[]>('SELECT * FROM ad_users WHERE id = ?', [id])
  if (!userRows[0]) return NextResponse.json({ error: 'Usuário não encontrado' }, { status: 404 })

  const newEnabled = userRows[0].enabled ? 0 : 1
  await pool.execute("UPDATE ad_users SET enabled=?, sync_status='pending' WHERE id=?", [newEnabled, id])

  const taskType = newEnabled ? 'enable_user' : 'disable_user'
  await pool.execute(
    `INSERT INTO agent_tasks (tenant_id, type, payload, status) VALUES (?, ?, ?, 'pending')`,
    [userRows[0].tenant_id, taskType, JSON.stringify({ ad_user_id: id, sam_account: userRows[0].sam_account })]
  )

  return NextResponse.json({ enabled: !!newEnabled })
}
