import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'src/app.dart'; import 'src/shared/data/local/app_database.dart'; import 'src/shared/data/remote/api_client.dart'; import 'src/shared/data/remote/pb_auth_store.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); try { await dotenv.load(fileName: '.env'); log('Environment loaded: ${dotenv.env['ENVIRONMENT']}'); log('API URL: ${dotenv.env['API_BASE_URL']}'); } catch (e) { log('Could not load .env file: $e'); log('Using default production values'); } await SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); final database = AppDatabase(); final authStore = PbAuthStore(); await authStore.loadFromStorage(); if (authStore.isValid && authStore.record == null) { final tempClient = ApiClient(authStore: authStore); try { await tempClient.refreshAuth(); } catch (e) { log('Initial auth refresh failed: $e'); } } runApp( ProviderScope( overrides: [ appDatabaseProvider.overrideWithValue(database), apiClientProvider .overrideWith((ref) => ApiClient(authStore: authStore)), ], child: const SLRPGApp(), ), ); } final appDatabaseProvider = Provider((ref) => throw UnimplementedError());