/**
 * Auto-generated by ${VOCAB.factory}
 * IntelligenceBrief Dynamic API Routes
 */

import { NextRequest, NextResponse } from 'next/server';
import { prisma } from '@/lib/db';
import { VOCAB } from '@/lib/white-label/constants';

export const dynamic = 'force-dynamic';

interface RouteContext {
  params: Promise<{ id: string }>;
}


// GET - Get a single IntelligenceBrief by ID
export async function GET(
  request: NextRequest,
  context: RouteContext
) {
  try {
    const { id } = await context.params;

    const intelligenceBrief = await prisma.intelligenceBrief.findUnique({
      where: { id },
    });

    if (!intelligenceBrief) {
      return NextResponse.json(
        { error: 'IntelligenceBrief not found' },
        { status: 404 }
      );
    }

    return NextResponse.json(intelligenceBrief);
  } catch (error) {
    console.error('Error fetching IntelligenceBrief:', error);
    return NextResponse.json(
      { error: 'Failed to fetch IntelligenceBrief' },
      { status: 500 }
    );
  }
}


// PUT - Update a IntelligenceBrief
export async function PUT(
  request: NextRequest,
  context: RouteContext
) {
  try {
    const { id } = await context.params;
    const body = await request.json();

    // Remove fields that shouldn't be updated
    delete body.id;
    delete body.createdAt;
    delete body.updatedAt;

    const intelligenceBrief = await prisma.intelligenceBrief.update({
      where: { id },
      data: body,
    });

    return NextResponse.json(intelligenceBrief);
  } catch (error) {
    console.error('Error updating IntelligenceBrief:', error);
    return NextResponse.json(
      { error: 'Failed to update IntelligenceBrief' },
      { status: 500 }
    );
  }
}


// DELETE - Delete a IntelligenceBrief
export async function DELETE(
  request: NextRequest,
  context: RouteContext
) {
  try {
    const { id } = await context.params;

    await prisma.intelligenceBrief.delete({
      where: { id },
    });

    return NextResponse.json({ success: true });
  } catch (error) {
    console.error('Error deleting IntelligenceBrief:', error);
    return NextResponse.json(
      { error: 'Failed to delete IntelligenceBrief' },
      { status: 500 }
    );
  }
}
