import Constants from 'expo-constants';

export const ENV = {
  // Google Maps API Key - Configurada no app.json
  GOOGLE_MAPS_API_KEY: Constants.expoConfig?.extra?.googleMapsApiKey || 'AIzaSyBc0DiFwbS0yOJCuMi1KGwbc7_d1p8HyxQ',
  
  // Configurações da API
  API_BASE_URL: process.env.API_BASE_URL || 'https://api.truckdelivery.com.br',
  API_TIMEOUT: process.env.API_TIMEOUT || '30000',
  
  // Configurações de autenticação
  AUTH_TOKEN_KEY: process.env.AUTH_TOKEN_KEY || 'auth_token',
  USER_DATA_KEY: process.env.USER_DATA_KEY || 'user_data',
  
  // Configurações do ambiente
  ENVIRONMENT: process.env.NODE_ENV || 'development',
  
  // Configurações do Mapbox (para rotas)
  MAPBOX_ACCESS_TOKEN: "pk.eyJ1IjoiYWxlaW5jb25uZXh0IiwiYSI6ImNtOGtvdzFueDBuMGUybHBvYjd4d3kyZDQifQ.MXDcXpxKAXtQkyAwv-_1tQ",
  
  // Configurações de notificações
  NOTIFICATION_ICON: "./assets/notification-icon.png",
  NOTIFICATION_COLOR: "#ffffff",
};

// Função helper para obter a API key do Google Maps
export const getGoogleMapsApiKey = (): string => {
  return ENV.GOOGLE_MAPS_API_KEY;
};

// Função helper para verificar se estamos em desenvolvimento
export const isDevelopment = (): boolean => {
  return ENV.ENVIRONMENT === 'development';
};

// Função helper para obter a URL base da API
export const getApiBaseUrl = (): string => {
  return ENV.API_BASE_URL;
};

// Função utilitária para converter coordenadas para número
export const convertCoordinate = (coord: any): number | null => {
  // Log para debug
  console.log('=== DEBUG: convertCoordinate ===');
  console.log('Valor recebido:', coord);
  console.log('Tipo:', typeof coord);
  
  if (coord === null || coord === undefined) {
    console.log('Valor é null/undefined, retornando null');
    return null;
  }
  
  // Se já é número, retorna como está
  if (typeof coord === 'number') {
    console.log('Valor já é número:', coord);
    return coord;
  }
  
  // Se é string, converte vírgula para ponto e depois para número
  if (typeof coord === 'string') {
    console.log('Valor é string, convertendo:', coord);
    const cleanCoord = coord.replace(',', '.');
    const numCoord = parseFloat(cleanCoord);
    const result = isNaN(numCoord) ? null : numCoord;
    console.log('Resultado da conversão:', result);
    return result;
  }
  
  console.log('Tipo não suportado, retornando null');
  return null;
};

export default ENV; 