// 功能描述:解析消息中心真实业务消息及分类计数;版本:1.0.0。 class UserMessage { const UserMessage({ required this.key, required this.category, required this.title, required this.summary, required this.statusText, required this.target, required this.targetIdentity, required this.occurredAt, required this.read, }); factory UserMessage.fromJson(Map json) => UserMessage( key: json['key']?.toString() ?? '', category: json['category']?.toString() ?? '', title: json['title']?.toString() ?? '', summary: json['summary']?.toString() ?? '', statusText: json['status_text']?.toString() ?? '', target: json['target']?.toString() ?? '', targetIdentity: json['target_identity']?.toString() ?? '', occurredAt: DateTime.tryParse(json['occurred_at']?.toString() ?? '') ?? DateTime.fromMillisecondsSinceEpoch(0), read: json['read'] == true, ); final String key, category, title, summary, statusText, target, targetIdentity; final DateTime occurredAt; final bool read; } class MessageCenterData { const MessageCenterData({required this.items, required this.counts}); factory MessageCenterData.fromJson(Map json) { final rawItems = json['items'] is List ? json['items'] as List : const []; final rawCounts = json['counts'] is Map ? Map.from(json['counts'] as Map) : const {}; return MessageCenterData( items: List.unmodifiable( rawItems.whereType>().map( (item) => UserMessage.fromJson(Map.from(item)), ), ), counts: Map.unmodifiable( rawCounts.map((key, value) => MapEntry(key, value is num ? value.toInt() : 0)), ), ); } final List items; final Map counts; }