Initial commit: unionflow-mobile-apps
Application Flutter complète (sans build artifacts). Signed-off-by: lions dev Team
This commit is contained in:
157
lib/features/settings/data/models/system_metrics_model.dart
Normal file
157
lib/features/settings/data/models/system_metrics_model.dart
Normal file
@@ -0,0 +1,157 @@
|
||||
import 'package:json_annotation/json_annotation.dart';
|
||||
|
||||
part 'system_metrics_model.g.dart';
|
||||
|
||||
/// Modèle pour les métriques système en temps réel
|
||||
@JsonSerializable(fieldRename: FieldRename.none)
|
||||
class SystemMetricsModel {
|
||||
// Métriques CPU
|
||||
final double? cpuUsagePercent;
|
||||
final int? availableProcessors;
|
||||
final double? systemLoadAverage;
|
||||
|
||||
// Métriques mémoire
|
||||
final int? totalMemoryBytes;
|
||||
final int? usedMemoryBytes;
|
||||
final int? freeMemoryBytes;
|
||||
final int? maxMemoryBytes;
|
||||
final double? memoryUsagePercent;
|
||||
final String? totalMemoryFormatted;
|
||||
final String? usedMemoryFormatted;
|
||||
final String? freeMemoryFormatted;
|
||||
|
||||
// Métriques disque
|
||||
final int? totalDiskBytes;
|
||||
final int? usedDiskBytes;
|
||||
final int? freeDiskBytes;
|
||||
final double? diskUsagePercent;
|
||||
final String? totalDiskFormatted;
|
||||
final String? usedDiskFormatted;
|
||||
final String? freeDiskFormatted;
|
||||
|
||||
// Métriques utilisateurs
|
||||
final int? activeUsersCount;
|
||||
final int? totalUsersCount;
|
||||
final int? activeSessionsCount;
|
||||
final int? failedLoginAttempts24h;
|
||||
|
||||
// Métriques API
|
||||
final int? apiRequestsLastHour;
|
||||
final int? apiRequestsToday;
|
||||
final double? averageResponseTimeMs;
|
||||
final int? totalRequestsCount;
|
||||
|
||||
// Métriques base de données
|
||||
final int? dbConnectionPoolSize;
|
||||
final int? dbActiveConnections;
|
||||
final int? dbIdleConnections;
|
||||
final bool? dbHealthy;
|
||||
|
||||
// Métriques erreurs et logs
|
||||
final int? criticalErrorsCount;
|
||||
final int? warningsCount;
|
||||
final int? infoLogsCount;
|
||||
final int? debugLogsCount;
|
||||
final int? totalLogsCount;
|
||||
|
||||
// Métriques réseau
|
||||
final double? networkBytesReceivedPerSec;
|
||||
final double? networkBytesSentPerSec;
|
||||
final String? networkInFormatted;
|
||||
final String? networkOutFormatted;
|
||||
|
||||
// Métriques système
|
||||
final String? systemStatus;
|
||||
final int? uptimeMillis;
|
||||
final String? uptimeFormatted;
|
||||
final String? startTime;
|
||||
final String? currentTime;
|
||||
final String? javaVersion;
|
||||
final String? quarkusVersion;
|
||||
final String? applicationVersion;
|
||||
|
||||
// Métriques maintenance
|
||||
final String? lastBackup;
|
||||
final String? nextScheduledMaintenance;
|
||||
final String? lastMaintenance;
|
||||
|
||||
// URLs
|
||||
final String? apiBaseUrl;
|
||||
final String? authServerUrl;
|
||||
final String? cdnUrl;
|
||||
|
||||
// Cache
|
||||
final int? totalCacheSizeBytes;
|
||||
final String? totalCacheSizeFormatted;
|
||||
final int? totalCacheEntries;
|
||||
|
||||
const SystemMetricsModel({
|
||||
this.cpuUsagePercent,
|
||||
this.availableProcessors,
|
||||
this.systemLoadAverage,
|
||||
this.totalMemoryBytes,
|
||||
this.usedMemoryBytes,
|
||||
this.freeMemoryBytes,
|
||||
this.maxMemoryBytes,
|
||||
this.memoryUsagePercent,
|
||||
this.totalMemoryFormatted,
|
||||
this.usedMemoryFormatted,
|
||||
this.freeMemoryFormatted,
|
||||
this.totalDiskBytes,
|
||||
this.usedDiskBytes,
|
||||
this.freeDiskBytes,
|
||||
this.diskUsagePercent,
|
||||
this.totalDiskFormatted,
|
||||
this.usedDiskFormatted,
|
||||
this.freeDiskFormatted,
|
||||
this.activeUsersCount,
|
||||
this.totalUsersCount,
|
||||
this.activeSessionsCount,
|
||||
this.failedLoginAttempts24h,
|
||||
this.apiRequestsLastHour,
|
||||
this.apiRequestsToday,
|
||||
this.averageResponseTimeMs,
|
||||
this.totalRequestsCount,
|
||||
this.dbConnectionPoolSize,
|
||||
this.dbActiveConnections,
|
||||
this.dbIdleConnections,
|
||||
this.dbHealthy,
|
||||
this.criticalErrorsCount,
|
||||
this.warningsCount,
|
||||
this.infoLogsCount,
|
||||
this.debugLogsCount,
|
||||
this.totalLogsCount,
|
||||
this.networkBytesReceivedPerSec,
|
||||
this.networkBytesSentPerSec,
|
||||
this.networkInFormatted,
|
||||
this.networkOutFormatted,
|
||||
this.systemStatus,
|
||||
this.uptimeMillis,
|
||||
this.uptimeFormatted,
|
||||
this.startTime,
|
||||
this.currentTime,
|
||||
this.javaVersion,
|
||||
this.quarkusVersion,
|
||||
this.applicationVersion,
|
||||
this.lastBackup,
|
||||
this.nextScheduledMaintenance,
|
||||
this.lastMaintenance,
|
||||
this.apiBaseUrl,
|
||||
this.authServerUrl,
|
||||
this.cdnUrl,
|
||||
this.totalCacheSizeBytes,
|
||||
this.totalCacheSizeFormatted,
|
||||
this.totalCacheEntries,
|
||||
});
|
||||
|
||||
factory SystemMetricsModel.fromJson(Map<String, dynamic> json) =>
|
||||
_$SystemMetricsModelFromJson(json);
|
||||
|
||||
Map<String, dynamic> toJson() => _$SystemMetricsModelToJson(this);
|
||||
|
||||
/// Helper pour formater un pourcentage
|
||||
String formatPercent(double? percent) {
|
||||
if (percent == null) return '0%';
|
||||
return '${percent.toStringAsFixed(1)}%';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user