import type { MetadataRoute } from 'next';
import { loadStoreConfig } from '@/lib/storeConfig';
import { getStoreBaseUrl, isIndexable } from '@/lib/storeSeo';

/**
 * robots.txt por tenant.
 *
 * Lo importante acá no es tanto permitir el indexado como **impedirlo**: una
 * tienda en borrador o pausada resuelve al diseño de fallback, y sin esto Google
 * podría indexar la plantilla vacía bajo el dominio del cliente.
 *
 * Las rutas de API, autenticación y checkout nunca se indexan (contienen tokens
 * de pedido y datos del comprador).
 */
export default async function robots(): Promise<MetadataRoute.Robots> {
	const config = await loadStoreConfig();
	const base = await getStoreBaseUrl();
	const indexable = isIndexable(config);

	if (!indexable) {
		return { rules: { userAgent: '*', disallow: '/' } };
	}

	return {
		rules: {
			userAgent: '*',
			allow: '/',
			disallow: ['/api/', '/sign-in', '/sign-up', '/sign-out', '/checkout', '/seguimiento', '/cuenta']
		},
		sitemap: `${base}/sitemap.xml`,
		host: base
	};
}
