/// UnionFlow - Application Mobile Révolutionnaire
///
/// Point d'entrée principal avec système d'authentification adaptatif
/// Architecture ultra-sophistiquée avec dashboard morphique basé sur les rôles
library main;

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'app/app.dart';
import 'core/config/environment.dart';
import 'core/l10n/locale_provider.dart';
import 'core/di/injection.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  AppConfig.initialize();

  // Initialisation unique et automatique (DRY)
  configureDependencies();

  // Mode immersif et config système
  await _configureApp();

  final localeProvider = LocaleProvider();
  await localeProvider.initialize();

  runApp(UnionFlowApp(localeProvider: localeProvider));
}

/// Configure les paramètres globaux de l'application
Future<void> _configureApp() async {
  // Configuration de l'orientation
  await SystemChrome.setPreferredOrientations([
    DeviceOrientation.portraitUp,
  ]);

  // Configuration de la barre de statut - Mode immersif
  SystemChrome.setSystemUIOverlayStyle(
    const SystemUiOverlayStyle(
      statusBarColor: Colors.transparent, // Transparent pour mode immersif
      statusBarIconBrightness: Brightness.dark, // Icônes sombres sur fond clair
      statusBarBrightness: Brightness.light, // Pour iOS
      systemNavigationBarColor: Colors.white, // Barre de navigation blanche
      systemNavigationBarIconBrightness: Brightness.dark, // Icônes sombres
      systemNavigationBarDividerColor: Colors.transparent, // Pas de séparateur
    ),
  );

  // Activer le mode edge-to-edge (immersif)
  SystemChrome.setEnabledSystemUIMode(
    SystemUiMode.edgeToEdge,
  );
}