import { NextResponse } from "next/server";

export function correlationId(request: Request): string {
  return request.headers.get("x-correlation-id") ?? crypto.randomUUID();
}

export function ok<T>(request: Request, data: T) {
  return NextResponse.json({ ok: true, data, correlationId: correlationId(request) });
}

export function fail(request: Request, code: string, message: string, status = 400, details?: unknown) {
  return NextResponse.json({ ok: false, error: { code, message, details }, correlationId: correlationId(request) }, { status });
}
