/**
 * Resuelve el identificador de tienda a partir del host de la request.
 *   empresa1.novasis.com → "empresa1" (subdominio propio de Novasis)
 *   tienda.suempresa.com.py → "tienda.suempresa.com.py" (dominio propio del
 *     cliente, se manda completo — el backend lo matchea contra
 *     ecommerce_config.dominio_custom)
 *   localhost:3001 / 192.168.x.x → null (usa STORE_SUBDOMINIO_DEV)
 *
 * ROOT_DOMAIN (env, default "novasis.com") es el dominio raíz bajo el que
 * viven los subdominios propios de Novasis — cualquier host que NO cuelgue de
 * ahí se trata como dominio propio del cliente.
 */
export function resolveStoreIdentifier(host: string): string | null {
	const hostname = host.split(':')[0]?.toLowerCase();
	if (!hostname || hostname === 'localhost' || /^\d{1,3}(\.\d{1,3}){3}$/.test(hostname)) return null;

	const rootDomain = (process.env.ROOT_DOMAIN || 'novasis.com').toLowerCase();
	if (hostname === rootDomain) return null;
	if (hostname.endsWith(`.${rootDomain}`)) {
		return hostname.slice(0, -1 * (rootDomain.length + 1));
	}

	// No cuelga del dominio raíz de Novasis: se trata como dominio propio del cliente.
	return hostname.includes('.') ? hostname : null;
}
