Performance.fromJson constructor
Performance.fromJson(
- Map<String, dynamic> json
)
Implementation
factory Performance.fromJson(Map<String, dynamic> json) {
// Handle both millisecond timestamps and ISO strings
DateTime parseTimestamp(dynamic ts) {
if (ts == null) return DateTime.now().toUtc();
if (ts is int) {
// Validar timestamp razonable antes de crear DateTime
if (ts > 0 && ts < 32503680000000) {
return DateTime.fromMillisecondsSinceEpoch(ts, isUtc: true);
}
return DateTime.now().toUtc();
}
if (ts is String) {
return DateTime.tryParse(ts)?.toUtc() ?? DateTime.now().toUtc();
}
return DateTime.now().toUtc();
}
return Performance(
timestamp: parseTimestamp(json['timestamp']),
name: json['name'],
elapsedMs: json['elapsed_ms'] is num
? (json['elapsed_ms'] as num).toInt()
: null,
debug: json['debug'],
steps: json['steps'] is List
? (json['steps'] as List)
.where((e) => e is Map<String, dynamic>)
.map((e) => PerformanceStep.fromJson(e as Map<String, dynamic>))
.toList()
: null,
);
}