import { NextRequest, NextResponse } from 'next/server';

import { createRecord, isValidEntity, listRecords } from '../../../../lib/local-dev-db';

export async function GET(_: NextRequest, { params }: { params: { entity: string } }) {
  if (!isValidEntity(params.entity)) {
    return NextResponse.json({ error: 'Invalid entity.' }, { status: 404 });
  }

  const records = await listRecords(params.entity);
  return NextResponse.json({ entity: params.entity, records });
}

export async function POST(request: NextRequest, { params }: { params: { entity: string } }) {
  if (!isValidEntity(params.entity)) {
    return NextResponse.json({ error: 'Invalid entity.' }, { status: 404 });
  }

  const payload = (await request.json()) as Record<string, unknown>;
  const record = await createRecord(params.entity, payload);
  return NextResponse.json({ entity: params.entity, record }, { status: 201 });
}
