guru_sdk/guru_app/lib/account/model/user.dart

196 lines
4.9 KiB
Dart

import 'package:json_annotation/json_annotation.dart';
/// Created by Haoyi on 6/3/21
part 'user.g.dart';
@Deprecated("Use Guru User instead")
typedef SaasUser = GuruUser;
@JsonSerializable()
class GuruUser {
@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);
GuruUser(
{required this.uid,
required this.token,
required this.firebaseToken,
this.createAtTimestamp = 0});
factory GuruUser.fromJson(Map<String, dynamic> json) => _$GuruUserFromJson(json);
Map<String, dynamic> toJson() => _$GuruUserToJson(this);
GuruUser copyWith({String? firebaseToken, String? token}) {
return GuruUser(
uid: uid, token: token ?? this.token, firebaseToken: firebaseToken ?? this.firebaseToken);
}
bool isSame(GuruUser? user) {
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);
}
@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);
}
@JsonSerializable()
class FirebaseTokenData {
@JsonKey(name: 'uid', defaultValue: "")
final String uid;
@JsonKey(name: 'firebaseToken', defaultValue: "")
final String firebaseToken;
FirebaseTokenData({this.uid = "", this.firebaseToken = ""});
factory FirebaseTokenData.fromJson(Map<String, dynamic> json) =>
_$FirebaseTokenDataFromJson(json);
Map<String, dynamic> toJson() => _$FirebaseTokenDataToJson(this);
@override
String toString() {
return 'FirebaseTokenData{uid: $uid, firebaseToken: $firebaseToken}';
}
}
@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);
}
class UserAttr {
static const real = 0;
static const tester = 10;
static const machine = 100;
}