import { NextResponse, type NextRequest } from "next/server";

const PLATFORM_HOSTS = new Set(["localhost", "127.0.0.1", "shop-compras.com", "www.shop-compras.com", "app.inixis.com", "admin.inixis.com"]);

export function proxy(request: NextRequest) {
  const host = (request.headers.get("host") ?? "").toLowerCase().replace(/:\d+$/, "");
  const path = request.nextUrl.pathname;
  if(host==="admin.inixis.com"&&!path.startsWith("/admin")&&!path.startsWith("/_next")&&!path.startsWith("/api")){const url=request.nextUrl.clone();url.pathname=path==="/login"?"/admin/login":"/admin";return NextResponse.redirect(url)}
  if(host==="app.inixis.com"&&path==="/"){const url=request.nextUrl.clone();url.pathname="/login";return NextResponse.redirect(url)}
  if (!host || PLATFORM_HOSTS.has(host) || path.startsWith("/site") || path.startsWith("/_next") || path.startsWith("/api") || path.startsWith("/painel") || path.startsWith("/admin") || path.startsWith("/login") || path.startsWith("/cadastro")) return NextResponse.next();
  const tenantKey = host.endsWith(".localhost") ? host.slice(0, -".localhost".length) : host.endsWith(".shop-compras.com") ? host.slice(0, -".shop-compras.com".length) : host;
  const url = request.nextUrl.clone();
  url.pathname = `/site/${encodeURIComponent(tenantKey)}${path === "/" ? "" : path}`;
  return NextResponse.rewrite(url);
}

export const config = { matcher: ["/((?!_next/static|_next/image|favicon.ico|logo.png).*)"] };
