// lib/remote/run_remote_sync.dart import 'package:sqflite/sqflite.dart'; import 'remote_client.dart'; import 'remote_repository.dart'; import 'auth_client.dart'; /// Esegue login, scarica /photos e fa upsert nel DB. /// Configura qui baseUrl/indexPath/email/password (o spostali in Settings). Future runRemoteSyncOnce({ required Database db, String baseUrl = 'https://prova.patachina.it', String indexPath = 'photos/', // rotta protetta dal tuo server String email = 'fabio@gmail.com', // TODO: passare da Settings/secure storage String password = 'master66', // idem }) async { try { final auth = RemoteAuth(baseUrl: baseUrl, email: email, password: password); // login (facoltativo: RemoteJsonClient lo chiamerebbe on-demand) await auth.login(); final client = RemoteJsonClient(baseUrl, indexPath, auth: auth); final items = await client.fetchAll(); print("TIPO ITEMS: ${items.runtimeType}"); print("TIPO ELEMENTO 0: ${items.first.runtimeType}"); final repo = RemoteRepository(db); await repo.upsertAll(items); final c = await repo.countRemote(); // ignore: avoid_print print('[remote-sync] importati remoti: $c (base=$baseUrl, index=$indexPath)'); } catch (e, st) { // ignore: avoid_print print('[remote-sync][ERROR] $e\n$st'); rethrow; } }