74 lines
2.6 KiB
TypeScript
74 lines
2.6 KiB
TypeScript
// ============================================================================
|
|
// DETECAO DE AMBIENTE - Automatico por hostname
|
|
// ============================================================================
|
|
// Um unico build serve todos os ambientes:
|
|
// - PRODUCAO (avanzato.com.br): index, tracking ativo
|
|
// - HOMOLOGACAO (hml.avanzato.com.br): noindex, tracking desativado
|
|
// - DESENVOLVIMENTO (localhost): noindex, tracking desativado
|
|
// ============================================================================
|
|
|
|
const hostname = typeof window !== 'undefined' ? window.location.hostname : '';
|
|
|
|
export type Environment = 'production' | 'homologation' | 'development';
|
|
|
|
function detectEnvironment(): Environment {
|
|
// Producao: domínio principal
|
|
if (hostname === 'avanzato.com.br' || hostname === 'www.avanzato.com.br') {
|
|
return 'production';
|
|
}
|
|
|
|
// Homologacao: subdominio hml
|
|
if (hostname === 'hml.avanzato.com.br') {
|
|
return 'homologation';
|
|
}
|
|
|
|
// Desenvolvimento: localhost, 127.0.0.1, IPs locais, previews
|
|
if (
|
|
hostname === 'localhost' ||
|
|
hostname === '127.0.0.1' ||
|
|
hostname.startsWith('192.168.') ||
|
|
hostname.startsWith('10.') ||
|
|
hostname.startsWith('172.') ||
|
|
hostname.includes('kimi.page') || // previews
|
|
hostname === '' // SSR
|
|
) {
|
|
return 'development';
|
|
}
|
|
|
|
// Fallback: se nao reconhece, trata como homologacao (seguro)
|
|
return 'homologation';
|
|
}
|
|
|
|
export const ENV = detectEnvironment();
|
|
|
|
// Helpers
|
|
export const IS_PRODUCTION = ENV === 'production';
|
|
export const IS_HOMOLOGATION = ENV === 'homologation';
|
|
export const IS_DEVELOPMENT = ENV === 'development';
|
|
|
|
// Configuracoes por ambiente
|
|
export const ENV_CONFIG = {
|
|
// SEO / Indexacao
|
|
allowIndexing: IS_PRODUCTION, // So producao permite Google indexar
|
|
robotsMeta: IS_PRODUCTION ? 'index, follow' : 'noindex, nofollow',
|
|
|
|
// Tracking / Integracoes
|
|
mauticActive: IS_PRODUCTION, // So envia leads reais em producao
|
|
googleAnalytics: IS_PRODUCTION, // So trackeia em producao
|
|
googleAds: IS_PRODUCTION, // So dispara conversões em producao
|
|
facebookPixel: IS_PRODUCTION, // So dispara pixel em producao
|
|
|
|
// Visual
|
|
showBanner: !IS_PRODUCTION, // Banner de ambiente em hom/dev
|
|
bannerText: IS_HOMOLOGATION ? 'HOMOLOGACAO' : 'DESENVOLVIMENTO',
|
|
bannerColor: IS_HOMOLOGATION ? 'bg-yellow-500' : 'bg-blue-500',
|
|
} as const;
|
|
|
|
// Log para debug
|
|
if (typeof window !== 'undefined') {
|
|
console.log(`[Ambiente] ${ENV.toUpperCase()} | Host: ${hostname}`);
|
|
if (!IS_PRODUCTION) {
|
|
console.log('[Ambiente] Tracking desativado | SEO: noindex');
|
|
}
|
|
}
|