import 'dart:convert'; class BackendDTO { BackendDTO(this.data); factory BackendDTO.decode(String body) => BackendDTO( (jsonDecode(body) as Map)['data'] as Map, ); final Map data; bool get verified => data['verified'] == true; String? get email => data['email'] as String?; String get error => data['error'] as String? ?? 'unavailable'; String get userId => data['userId'] as String? ?? (data['account'] as Map?)?['id'] as String? ?? ''; String get pendingToken => (data['pendingToken'] as Map)['token'] as String; String get challengeId => data['challengeId'] as String? ?? ''; String get channel => data['channel'] as String? ?? ''; String get target => data['target'] as String; DateTime get expiresAt => DateTime.parse(data['expiresAt'] as String); DateTime get resendAt => DateTime.parse(data['resendAt'] as String); String get accessToken => (data['accessToken'] as Map)['token'] as String; String get refreshToken => (data['refreshToken'] as Map)['token'] as String; }