import { NextRequest, NextResponse } from 'next/server'; import { PERMISSIONS } from '@/lib/auth/rbac'; import { AuthError } from '@/lib/auth/session'; import { parseTransferPayload, requireAssetAccess, transferAsset } from '../../_lib'; type Params = { params: Promise<{ id: string }> }; export async function POST(request: NextRequest, { params }: Params) { try { const { id } = await params; const { organization, session } = await requireAssetAccess(PERMISSIONS.assetTransfer); const payload = parseTransferPayload(await request.json()); await transferAsset(organization.id, id, session.user.id, payload); return NextResponse.json({ success: true, message: 'Asset transferred successfully' }); } catch (error) { if (error instanceof AuthError) { return NextResponse.json({ message: error.message }, { status: error.status }); } if (error instanceof Error) { return NextResponse.json({ message: error.message }, { status: 400 }); } return NextResponse.json({ message: 'Unable to transfer asset' }, { status: 500 }); } }