import 'package:flutter/foundation.dart'; class AppConfig { static const String _prodApiUrl = 'https://api.muningkofie.com'; static const String _devApiUrl = 'https://dev-api.muningkofie.com'; static const String _localApiUrl = 'http://localhost:3000'; // Environment-based configuration static String get apiUrl { if (kDebugMode) { return _devApiUrl; } else if (kProfileMode) { return _prodApiUrl; } else { return _prodApiUrl; } } static bool get isDebugMode => kDebugMode; static bool get isReleaseMode => kReleaseMode; static bool get isProfileMode => kProfileMode; // Firebase configuration static const String firebaseProjectId = 'muning-menu-recommender'; static const String firebaseStorageBucket = 'muning-menu-recommender.appspot.com'; // Google Services static const String googleSignInClientId = String.fromEnvironment( 'GOOGLE_SIGN_IN_CLIENT_ID', defaultValue: '624527944720-2hngapf8r7d1smh8114uioii2fr4bhv3.apps.googleusercontent.com', // Fallback for development ); // API Keys static const String geminiApiKey = String.fromEnvironment( 'GEMINI_API_KEY', defaultValue: 'AIzaSyC7mYgCfQCkBVK-Mia2NduOXyRMcsaCh10', // Restored to working key ); // Feature flags static const bool enableGoogleSignIn = true; static const bool enableOfflineMode = true; static const bool enablePushNotifications = true; static const bool enableAnalytics = true; static const bool enableCrashlytics = true; // App settings static const int maxRecommendationHistory = 50; static const int maxImageCacheSize = 100; // MB static const Duration cacheExpiration = Duration(days: 7); // OCR settings static const double minOcrConfidence = 0.6; static const int maxOcrRetries = 3; // AI settings static const int maxTokensPerRequest = 8192; static const double aiTemperature = 0.2; // Rendah = output JSON lebih konsisten static const int maxConversationHistory = 10; // Helper method to check if Gemini is configured static bool get isGeminiConfigured { return geminiApiKey.isNotEmpty; } // Validation static bool get isConfigValid { if (!isGeminiConfigured) { debugPrint('Warning: GEMINI_API_KEY is not set'); return false; } return true; } // Debug helpers static void printConfig() { if (kDebugMode) { debugPrint('=== App Configuration ==='); debugPrint('API URL: $apiUrl'); debugPrint('Debug Mode: $isDebugMode'); debugPrint( 'Gemini API Key: ${geminiApiKey.isNotEmpty ? "Set" : "Not Set"}', ); debugPrint( 'Google Sign-In: ${googleSignInClientId.isNotEmpty ? "Set" : "Not Set"}', ); debugPrint('Config Valid: $isConfigValid'); debugPrint('========================'); } } }