import "server-only";
import { headers } from "next/headers";
import { getEnv } from "@/server/env";
import { parseClientIp } from "@/lib/net/client-ip";

export type RequestMeta = { ip: string; userAgent: string | null };

/** IP y User-Agent de la petición actual (Server Components, Server Actions, Route Handlers). */
export async function getRequestMeta(): Promise<RequestMeta> {
  const h = await headers();
  return metaFromHeaders(h);
}

export function metaFromHeaders(h: Headers): RequestMeta {
  return {
    ip: parseClientIp(h.get("x-forwarded-for"), getEnv().TRUSTED_PROXY_HOPS),
    userAgent: h.get("user-agent"),
  };
}
