/**
 * Rotiert den API-Key eines Trigger-Templates. Alter Key wird sofort ungültig.
 *   POST /api/trigger-templates/{id}/rotate-key
 *
 * Antwort enthält den NEUEN Klartext-Key — UI muss ihn dem User einmalig zeigen,
 * mit Hinweis "wird nicht erneut abrufbar sein".
 */

import { NextRequest, NextResponse } from 'next/server';
import { getTriggerTemplateById, regenerateApiKey } from '@/lib/db/trigger-template-repo';
import { withAuth } from '@/core/auth';

export const runtime = 'nodejs';
export const dynamic = 'force-dynamic';

export const POST = withAuth<{ params: Promise<{ id: string }> }>(async (req: NextRequest, _ctx, ctx: { params: Promise<{ id: string }> }) => {
  const { id } = await ctx.params;
  const t = getTriggerTemplateById(id);
  if (!t) return NextResponse.json({ error: 'Template not found' }, { status: 404 });

  try {
    const { apiKey, prefix } = regenerateApiKey(id);
    return NextResponse.json({
      ok: true,
      apiKey,
      apiKeyPrefix: prefix,
      message: 'Neuer API-Key generiert. Alter Key ist sofort ungültig — bitte den neuen Key kopieren, er wird nicht erneut angezeigt.',
    });
  } catch (err) {
    const msg = err instanceof Error ? err.message : String(err);
    return NextResponse.json({ error: msg }, { status: 500 });
  }
});
