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

99 lines
2.5 KiB
Dart
Raw Normal View History

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