export function ownerIdFrom(request: Request): string | null {
  const authorization = request.headers.get("authorization");
  if (authorization?.startsWith("Basic ")) {
    try {
      const username = atob(authorization.slice(6)).split(":", 1)[0];
      if (username) return `basic:${username}`;
    } catch { /* invalid Basic header is rejected by proxy.ts */ }
  }
  return process.env.DEFAULT_OWNER_ID || "server-owner";
}

export function requireOwner(request: Request): string {
  const ownerId = ownerIdFrom(request);
  if (!ownerId) throw new Response("로그인이 필요합니다.", { status: 401 });
  return ownerId;
}

export function apiError(error: unknown): Response {
  if (error instanceof Response) return error;
  const message = error instanceof Error ? error.message : "요청을 처리하지 못했습니다.";
  return Response.json({ error: message }, { status: 400 });
}
