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 json) => _$SaasUserFromJson(json); Map 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 json) => _$AnonymousLoginReqBodyFromJson(json); Map 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 json) => _$FirebaseTokenDataFromJson(json); Map 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; }