/**
 * Erlaubt Service-/Helper-Funktionen, einen Fehler mit explizitem HTTP-
 * Status nach oben zu reichen. Controller können in ihrem `catch` per
 * `instanceof ApiError` den Status auslesen statt pauschal 500 zu liefern.
 *
 * Pentest 64.1 (LOW, 2026-06-02): Race-Lock (assertNoRecentDuplicate-
 * Document) warf einen generischen Error → catch hat 500 zurückgegeben,
 * obwohl die Fehlermeldung "Dokument vor wenigen Sekunden bereits
 * angelegt" eindeutig eine 400-Class-Situation ist.
 */
export class ApiError extends Error {
  readonly statusCode: number;
  constructor(statusCode: number, message: string) {
    super(message);
    this.name = 'ApiError';
    this.statusCode = statusCode;
  }
}
