// Environment validation utility
export function validateEnvironment() {
  const requiredEnvVars = [
    'NEXT_PUBLIC_FIREBASE_API_KEY',
    'NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN',
    'NEXT_PUBLIC_FIREBASE_PROJECT_ID',
    'NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET',
    'NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID',
    'NEXT_PUBLIC_FIREBASE_APP_ID',
  ];

  const missingVars = requiredEnvVars.filter(varName => !process.env[varName]);
  
  if (missingVars.length > 0) {
    console.error('❌ Missing required environment variables:', missingVars);
    
    if (process.env.NODE_ENV === 'production') {
      throw new Error(`Missing required environment variables: ${missingVars.join(', ')}`);
    }
  }

  // Validate Firebase configuration
  const firebaseConfig = {
    apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
    authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
    projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
    storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
    appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
  };

  const requiredFields = ['apiKey', 'authDomain', 'projectId', 'storageBucket', 'messagingSenderId', 'appId'];
  
  for (const field of requiredFields) {
    if (!firebaseConfig[field as keyof typeof firebaseConfig]) {
      if (process.env.NODE_ENV === 'production') {
        throw new Error(`Missing required Firebase configuration: ${field}`);
      }
    }
  }

  return true;
}

// Get environment variable with fallback
export function getEnvVar(key: string, fallback?: string): string {
  const value = process.env[key];
  
  if (!value && fallback === undefined) {
    throw new Error(`Environment variable ${key} is required but not set`);
  }
  
  return value || fallback!;
}

// Check if running in production
export const isProduction = process.env.NODE_ENV === 'production';
export const isDevelopment = process.env.NODE_ENV === 'development';

// Site configuration
export const siteConfig = {
  name: process.env.SITE_NAME || 'Wolna Głowa',
  description: process.env.SITE_DESCRIPTION || 'Twoja przestrzeń do rozwoju i dobrego samopoczucia',
  url: process.env.SITE_URL || 'https://wolna-glowa.pl',
  ogImage: process.env.OG_IMAGE || '/og-image.jpg',
  links: {
    twitter: process.env.TWITTER_HANDLE || '@wolnaglowa',
    github: process.env.GITHUB_URL,
  },
}; 