2023-12-21 09:14:40 +00:00
|
|
|
import 'package:json_annotation/json_annotation.dart';
|
|
|
|
|
|
|
|
|
|
/// Created by Haoyi on 6/3/21
|
|
|
|
|
|
|
|
|
|
part 'user.g.dart';
|
|
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
@Deprecated("Use Guru User instead")
|
|
|
|
|
typedef SaasUser = GuruUser;
|
|
|
|
|
|
2023-12-21 09:14:40 +00:00
|
|
|
@JsonSerializable()
|
2024-03-07 03:46:50 +00:00
|
|
|
class GuruUser {
|
2023-12-21 09:14:40 +00:00
|
|
|
@JsonKey(name: 'uid', defaultValue: "")
|
|
|
|
|
final String uid;
|
|
|
|
|
|
|
|
|
|
@JsonKey(name: 'token', defaultValue: "")
|
|
|
|
|
final String token;
|
|
|
|
|
|
|
|
|
|
@JsonKey(name: 'firebaseToken', defaultValue: "")
|
|
|
|
|
final String firebaseToken;
|
|
|
|
|
|
|
|
|
|
@JsonKey(name: 'createdAtTimestamp', defaultValue: 0)
|
|
|
|
|
final int createAtTimestamp;
|
|
|
|
|
|
|
|
|
|
// bool get isAnonymous => (type == null) || (type == LOGIN_WITH_ANONYMOUS);
|
|
|
|
|
|
|
|
|
|
bool get isValid =>
|
|
|
|
|
(uid != "") && (token.isNotEmpty == true) && (firebaseToken.isNotEmpty == true);
|
|
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
GuruUser(
|
2023-12-21 09:14:40 +00:00
|
|
|
{required this.uid,
|
|
|
|
|
required this.token,
|
|
|
|
|
required this.firebaseToken,
|
|
|
|
|
this.createAtTimestamp = 0});
|
|
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
factory GuruUser.fromJson(Map<String, dynamic> json) => _$GuruUserFromJson(json);
|
2023-12-21 09:14:40 +00:00
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
Map<String, dynamic> toJson() => _$GuruUserToJson(this);
|
2023-12-21 09:14:40 +00:00
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
GuruUser copyWith({String? firebaseToken, String? token}) {
|
|
|
|
|
return GuruUser(
|
2023-12-21 09:14:40 +00:00
|
|
|
uid: uid, token: token ?? this.token, firebaseToken: firebaseToken ?? this.firebaseToken);
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
bool isSame(GuruUser? user) {
|
2023-12-21 09:14:40 +00:00
|
|
|
return uid == user?.uid &&
|
|
|
|
|
token == user?.token &&
|
|
|
|
|
firebaseToken == user?.firebaseToken &&
|
|
|
|
|
createAtTimestamp == user?.createAtTimestamp;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String toString() {
|
|
|
|
|
return 'SaasUser{uid: $uid, token: $token, firebaseToken: $firebaseToken, createAtTimestamp: $createAtTimestamp}';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 匿名登录请求数据
|
|
|
|
|
@JsonSerializable()
|
|
|
|
|
class AnonymousLoginReqBody {
|
|
|
|
|
@JsonKey(name: 'secret', defaultValue: "")
|
|
|
|
|
final String secret;
|
|
|
|
|
|
|
|
|
|
AnonymousLoginReqBody({required this.secret});
|
|
|
|
|
|
|
|
|
|
// @override
|
|
|
|
|
// String toString() {
|
|
|
|
|
// return "{secret: '$secret'}";
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
factory AnonymousLoginReqBody.fromJson(Map<String, dynamic> json) =>
|
|
|
|
|
_$AnonymousLoginReqBodyFromJson(json);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => _$AnonymousLoginReqBodyToJson(this);
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
@JsonSerializable()
|
|
|
|
|
class FacebookLoginReqBody {
|
|
|
|
|
@JsonKey(name: 'accessToken', defaultValue: "")
|
|
|
|
|
final String? accessToken;
|
|
|
|
|
|
|
|
|
|
FacebookLoginReqBody({this.accessToken});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String toString() {
|
|
|
|
|
return 'FacebookLoginReqBody{accessToken: $accessToken}';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
factory FacebookLoginReqBody.fromJson(Map<String, dynamic> json) =>
|
|
|
|
|
_$FacebookLoginReqBodyFromJson(json);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => _$FacebookLoginReqBodyToJson(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@JsonSerializable()
|
|
|
|
|
class GoogleLoginReqBody {
|
|
|
|
|
@JsonKey(name: 'idToken', defaultValue: "")
|
|
|
|
|
final String? idToken;
|
|
|
|
|
|
|
|
|
|
GoogleLoginReqBody({this.idToken});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String toString() {
|
|
|
|
|
return 'GoogleLoginReqBody{idToken: $idToken}';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
factory GoogleLoginReqBody.fromJson(Map<String, dynamic> json) =>
|
|
|
|
|
_$GoogleLoginReqBodyFromJson(json);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => _$GoogleLoginReqBodyToJson(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@JsonSerializable()
|
|
|
|
|
class AppleLoginReqBody {
|
|
|
|
|
@JsonKey(name: 'token', defaultValue: "")
|
|
|
|
|
final String? token;
|
|
|
|
|
|
|
|
|
|
@JsonKey(name: 'clientType', defaultValue: "ios")
|
|
|
|
|
final String clientType;
|
|
|
|
|
|
|
|
|
|
AppleLoginReqBody({this.token, this.clientType = "ios"});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String toString() {
|
|
|
|
|
return 'AppleLoginReqBody{token: $token, clientType: $clientType}';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
factory AppleLoginReqBody.fromJson(Map<String, dynamic> json) =>
|
|
|
|
|
_$AppleLoginReqBodyFromJson(json);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => _$AppleLoginReqBodyToJson(this);
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-21 09:14:40 +00:00
|
|
|
@JsonSerializable()
|
|
|
|
|
class FirebaseTokenData {
|
|
|
|
|
@JsonKey(name: 'uid', defaultValue: "")
|
|
|
|
|
final String uid;
|
|
|
|
|
|
|
|
|
|
@JsonKey(name: 'firebaseToken', defaultValue: "")
|
|
|
|
|
final String firebaseToken;
|
|
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
FirebaseTokenData({this.uid = "", this.firebaseToken = ""});
|
2023-12-21 09:14:40 +00:00
|
|
|
|
|
|
|
|
factory FirebaseTokenData.fromJson(Map<String, dynamic> json) =>
|
|
|
|
|
_$FirebaseTokenDataFromJson(json);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => _$FirebaseTokenDataToJson(this);
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String toString() {
|
|
|
|
|
return 'FirebaseTokenData{uid: $uid, firebaseToken: $firebaseToken}';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-07 03:46:50 +00:00
|
|
|
@JsonSerializable()
|
|
|
|
|
class UserAuthInfo {
|
|
|
|
|
@JsonKey(name: "secret", defaultValue: "")
|
|
|
|
|
final String secret;
|
|
|
|
|
|
|
|
|
|
@JsonKey(name: 'providerList', defaultValue: const <String>[])
|
|
|
|
|
final List<String> providerList;
|
|
|
|
|
|
|
|
|
|
factory UserAuthInfo.fromJson(Map<String, dynamic> json) => _$UserAuthInfoFromJson(json);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => _$UserAuthInfoToJson(this);
|
|
|
|
|
|
|
|
|
|
UserAuthInfo({this.secret = "", this.providerList = const []});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String toString() {
|
|
|
|
|
return 'UserAuthList{providerList: $providerList}';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@JsonSerializable()
|
|
|
|
|
class UnbindReqBody {
|
|
|
|
|
@JsonKey(name: 'provider', defaultValue: "")
|
|
|
|
|
final String provider;
|
|
|
|
|
|
|
|
|
|
UnbindReqBody({this.provider = ""});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
String toString() {
|
|
|
|
|
return 'UnbindReqBody{provider: $provider}';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
factory UnbindReqBody.fromJson(Map<String, dynamic> json) => _$UnbindReqBodyFromJson(json);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() => _$UnbindReqBodyToJson(this);
|
|
|
|
|
}
|
2023-12-21 09:14:40 +00:00
|
|
|
|
|
|
|
|
class UserAttr {
|
|
|
|
|
static const real = 0;
|
|
|
|
|
static const tester = 10;
|
|
|
|
|
static const machine = 100;
|
2024-03-07 03:46:50 +00:00
|
|
|
}
|