feat(features): refontes onboarding/organizations/profile/reports/settings/solidarity

- onboarding : datasource souscription, models formule/status, bloc complet
- organizations : bloc orgs + switcher + types bloc, models, pages edit/create
- profile : bloc complet avec change password, delete account, preferences
- reports : bloc avec DashboardReports + ScheduleReports + GenerateReport
- settings : language, privacy, feedback pages
- solidarity : bloc complet demandes d'aide (CRUD, approuver, rejeter)
This commit is contained in:
dahoud
2026-04-15 20:27:12 +00:00
parent dbf6a972ba
commit 744faa3a9c
17 changed files with 711 additions and 403 deletions

View File

@@ -81,6 +81,110 @@ class SystemConfigRepositoryImpl implements ISystemConfigRepository {
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> optimizeDatabase() async {
final response = await _apiClient.post('$_base/database/optimize');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> forceGlobalLogout() async {
final response = await _apiClient.post('$_base/auth/logout-all');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> cleanupSessions() async {
final response = await _apiClient.post('$_base/sessions/cleanup');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> cleanOldLogs() async {
final response = await _apiClient.post('$_base/logs/cleanup');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> purgeExpiredData() async {
final response = await _apiClient.post('$_base/data/purge');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> analyzePerformance() async {
final response = await _apiClient.post('$_base/performance/analyze');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> createBackup() async {
final response = await _apiClient.post('$_base/backup/create');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> scheduleMaintenance({String? scheduledAt, String? reason}) async {
final queryParams = <String, String>{};
if (scheduledAt != null) queryParams['scheduledAt'] = scheduledAt;
if (reason != null) queryParams['reason'] = reason;
final response = await _apiClient.post(
'$_base/maintenance/schedule',
queryParameters: queryParams.isNotEmpty ? queryParams : null,
);
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> emergencyMaintenance() async {
final response = await _apiClient.post('$_base/maintenance/emergency');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> checkUpdates() async {
final response = await _apiClient.get('$_base/updates/check');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> exportLogs() async {
final response = await _apiClient.get('$_base/logs/export');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> generateUsageReport() async {
final response = await _apiClient.get('$_base/reports/usage');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> generateAuditReport() async {
final response = await _apiClient.get('$_base/audit/report');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<Map<String, dynamic>> exportGDPRData() async {
final response = await _apiClient.post('$_base/gdpr/export');
if (response.statusCode == 200) return response.data as Map<String, dynamic>;
throw Exception('Erreur ${response.statusCode}');
}
@override
Future<SystemConfigModel> resetConfig() async {
try {