113 lines
2.6 KiB
Dart
113 lines
2.6 KiB
Dart
import 'dart:convert';
|
|
import 'package:autos/domain/entities/turn14.dart';
|
|
|
|
class Turn14Response {
|
|
final String code;
|
|
final String message;
|
|
final String userId;
|
|
final String accessToken;
|
|
|
|
const Turn14Response({
|
|
required this.code,
|
|
required this.message,
|
|
required this.userId,
|
|
required this.accessToken,
|
|
});
|
|
|
|
factory Turn14Response.fromJson(Map<String, dynamic> json) {
|
|
return Turn14Response(
|
|
code: json['code'] ?? '',
|
|
message: json['message'] ?? '',
|
|
userId: json['userid'] ?? '',
|
|
accessToken: json['access_token'] ?? '',
|
|
);
|
|
}
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'code': code,
|
|
'message': message,
|
|
'userid': userId,
|
|
'access_token': accessToken,
|
|
};
|
|
}
|
|
|
|
/// Convert model → raw JSON string
|
|
String toRawJson() => jsonEncode(toJson());
|
|
|
|
/// Convert raw JSON string → model
|
|
factory Turn14Response.fromRawJson(String raw) =>
|
|
Turn14Response.fromJson(jsonDecode(raw));
|
|
|
|
/// Convert Response → Domain Entity
|
|
Turn14Entity toEntity() {
|
|
return Turn14Entity(
|
|
code: code,
|
|
message: message,
|
|
userId: userId,
|
|
accessToken: accessToken,
|
|
);
|
|
}
|
|
|
|
@override
|
|
String toString() {
|
|
return 'Turn14Response(code: $code, message: $message, userId: $userId, accessToken: $accessToken)';
|
|
}
|
|
}
|
|
|
|
|
|
|
|
class Turn14StatusModel {
|
|
final String userId;
|
|
final bool hasCredentials;
|
|
final String? clientId;
|
|
final String? clientSecret;
|
|
final String? accessToken;
|
|
final int? expiresIn; // ✅ FIXED: should be int
|
|
final String? code; // ✅ ADDED
|
|
final String? message; // ✅ ADDED
|
|
|
|
Turn14StatusModel({
|
|
required this.userId,
|
|
required this.hasCredentials,
|
|
this.clientId,
|
|
this.clientSecret,
|
|
this.accessToken,
|
|
this.expiresIn,
|
|
this.code,
|
|
this.message,
|
|
});
|
|
|
|
/// ✅ SAFE FROM JSON
|
|
factory Turn14StatusModel.fromJson(Map<String, dynamic> json) {
|
|
final credentials = json["credentials"];
|
|
final tokenInfo = json["tokenInfo"];
|
|
|
|
return Turn14StatusModel(
|
|
userId: json["userid"]?.toString() ?? "",
|
|
hasCredentials: json["hasCredentials"] ?? false,
|
|
|
|
clientId: credentials?["turn14clientid"],
|
|
clientSecret: credentials?["turn14clientsecret"],
|
|
|
|
accessToken: tokenInfo?["access_token"],
|
|
expiresIn: tokenInfo?["expires_in"],
|
|
|
|
code: json["code"],
|
|
message: json["message"],
|
|
);
|
|
}
|
|
|
|
/// ✅ MODEL → ENTITY (CLEAN ARCH)
|
|
Turn14StatusEntity toEntity() {
|
|
return Turn14StatusEntity(
|
|
userId: userId,
|
|
hasCredentials: hasCredentials,
|
|
clientId: clientId,
|
|
clientSecret: clientSecret,
|
|
accessToken: accessToken,
|
|
expiresIn: expiresIn,
|
|
);
|
|
}
|
|
}
|