import { createParamDecorator, ExecutionContext } from "@nestjs/common";

export const Tenant = createParamDecorator((_: unknown, context: ExecutionContext) => {
  const request = context.switchToHttp().getRequest<{ tenantId?: string; headers: Record<string, string> }>();
  const headerTenantId = request.headers["x-tenant-id"];
  // If guard resolved a real tenantId (e.g. from DB lookup), prefer it over the generic "default"
  if (request.tenantId && request.tenantId !== "default") {
    return request.tenantId;
  }
  if (headerTenantId && headerTenantId !== "default") {
    return headerTenantId;
  }
  return request.tenantId ?? headerTenantId ?? "default";
});
