initialize static method

Future<void> initialize({
  1. required SyncConfig provider,
  2. bool registerInGetIt = true,
  3. List<IDownloadStrategy>? downloadStrategies,
})

Inicializa o sistema de sync com o provider fornecido

provider - Implementação do SyncConfig com todas as configurações registerInGetIt - Se deve registrar automaticamente no GetIt (padrão: true) downloadStrategies - Lista de estratégias de download (opcional, se não fornecida usa as do SyncConfig)

Implementation

static Future<void> initialize({
  required SyncConfig provider,
  bool registerInGetIt = true,
  List<IDownloadStrategy>? downloadStrategies,
}) async {
  if (_isInitialized) {
    throw StateError(
        'SyncConfigurator já foi inicializado. Use reset() antes de inicializar novamente.');
  }

  _provider = provider;

  // Configurações são aplicadas através do provider
  // SyncConfig permanece com valores padrão

  // Registra dependências no GetIt se solicitado
  if (registerInGetIt) {
    _registerDependencies(provider, downloadStrategies);
  }

  // Inicializa o serviço interno de notificações se habilitadas
  if (provider.enableNotifications) {
    await SyncNotificationService.instance.initialize(enabled: true);
  } else {
    await SyncNotificationService.instance.initialize(enabled: false);
  }

  _isInitialized = true;
}