Implémentation upload documents pour transactions épargne ≥ seuil LCB-FT : Backend : - DocumentUploadService (@lazySingleton) : upload JPG/PNG/PDF max 5MB - Dio provider dans register_module.dart (timeouts 15s) Mobile : - 3 dialogs épargne modifiés (dépôt, retrait, transfert) - FilePicker + upload + validation seuil - UI états (idle, loading, success) - Validation : pièce requise si montant ≥ seuil Corrections : - AppLogger.error() : signature correcte (error: param nommé) - Assets : création répertoires mobile_money/ et virement/ Spec 001 : 27/27 tâches (100%) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
30 lines
892 B
Dart
30 lines
892 B
Dart
import 'package:connectivity_plus/connectivity_plus.dart';
|
|
import 'package:dio/dio.dart';
|
|
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
|
|
import 'package:http/http.dart' as http;
|
|
import 'package:injectable/injectable.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
@module
|
|
abstract class RegisterModule {
|
|
@lazySingleton
|
|
Connectivity get connectivity => Connectivity();
|
|
|
|
@lazySingleton
|
|
FlutterSecureStorage get storage => const FlutterSecureStorage(
|
|
aOptions: AndroidOptions(encryptedSharedPreferences: true),
|
|
);
|
|
|
|
@lazySingleton
|
|
http.Client get httpClient => http.Client();
|
|
|
|
@lazySingleton
|
|
Dio get dio => Dio(BaseOptions(
|
|
connectTimeout: const Duration(seconds: 15),
|
|
receiveTimeout: const Duration(seconds: 15),
|
|
));
|
|
|
|
@preResolve
|
|
Future<SharedPreferences> get sharedPreferences => SharedPreferences.getInstance();
|
|
}
|