import { NextRequest, NextResponse } from 'next/server'; import { updateAccountConfig, deleteAccountConfig } from '@/lib/db'; export async function PUT( req: NextRequest, { params }: { params: Promise<{ id: string }> } ) { const { id: idStr } = await params; const id = parseInt(idStr, 10); if (isNaN(id)) { return NextResponse.json({ error: 'Invalid id' }, { status: 400 }); } const body = await req.json() as { prefix?: string; profitTarget?: number; consistency?: number; minDayPnL?: number; minTradingDays?: number; accountSize?: number; maxLoss?: number; maxPositionSize?: number; targetSameEquity?: boolean; withdrawalStages?: { profit: number; consistency: number; minTradingDays: number }[]; }; const { prefix, profitTarget, consistency, minDayPnL, minTradingDays, accountSize, maxLoss, maxPositionSize, targetSameEquity, withdrawalStages } = body; if ( typeof prefix !== 'string' || !prefix.trim() || typeof profitTarget !== 'number' || typeof consistency !== 'number' || typeof minDayPnL !== 'number' || typeof minTradingDays !== 'number' || typeof accountSize !== 'number' ) { return NextResponse.json({ error: 'Invalid body' }, { status: 400 }); } try { const updated = updateAccountConfig(id, { prefix: prefix.trim(), profitTarget, consistency, minDayPnL, minTradingDays, accountSize, maxLoss: maxLoss ?? 0, maxPositionSize: maxPositionSize ?? 0, targetSameEquity: targetSameEquity ?? false, withdrawalStages: withdrawalStages ?? [], }); if (!updated) { return NextResponse.json({ error: 'Account config not found' }, { status: 404 }); } return NextResponse.json({ success: true }); } catch (err) { console.error('[PUT /api/account-configs/:id]', err); return NextResponse.json({ error: 'Failed to update' }, { status: 500 }); } } export async function DELETE( _req: NextRequest, { params }: { params: Promise<{ id: string }> } ) { const { id: idStr } = await params; const id = parseInt(idStr, 10); if (isNaN(id)) { return NextResponse.json({ error: 'Invalid id' }, { status: 400 }); } try { const deleted = deleteAccountConfig(id); if (!deleted) { return NextResponse.json({ error: 'Account config not found' }, { status: 404 }); } return NextResponse.json({ success: true }); } catch (err) { console.error('[DELETE /api/account-configs/:id]', err); return NextResponse.json({ error: 'Failed to delete' }, { status: 500 }); } }