TF-1204 Add firebase object and capability

This commit is contained in:
dab246
2022-11-15 15:41:59 +07:00
committed by Dat H. Pham
parent dcdec54dd9
commit d42f44b870
14 changed files with 551 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
import 'package:equatable/equatable.dart';
class DeviceClientId with EquatableMixin {
final String value;
DeviceClientId(this.value);
@override
List<Object?> get props => [value];
}
+13
View File
@@ -0,0 +1,13 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/jmap/core/utc_date.dart';
class FirebaseExpiredTime with EquatableMixin {
final UTCDate value;
FirebaseExpiredTime(this.value);
@override
List<Object?> get props => [value];
}
+45
View File
@@ -0,0 +1,45 @@
import 'package:equatable/equatable.dart';
import 'package:fcm/converter/device_client_id_nullable_converter.dart';
import 'package:fcm/converter/firebase_expired_time_nullable_converter.dart';
import 'package:fcm/converter/firebase_registration_id_nullable_converter.dart';
import 'package:fcm/converter/firebase_token_nullable_converter.dart';
import 'package:fcm/converter/type_name_converter.dart';
import 'package:fcm/model/device_client_id.dart';
import 'package:fcm/model/firebase_expired_time.dart';
import 'package:fcm/model/firebase_registration_id.dart';
import 'package:fcm/model/firebase_token.dart';
import 'package:fcm/model/type_name.dart';
import 'package:json_annotation/json_annotation.dart';
part 'firebase_registration.g.dart';
@DeviceClientIdNullableConverter()
@FirebaseRegistrationIdNullableConverter()
@FirebaseTokenNullableConverter()
@FirebaseExpiredTimeNullableConverter()
@TypeNameConverter()
@JsonSerializable(explicitToJson: true, includeIfNull: false)
class FirebaseRegistration with EquatableMixin {
final FirebaseRegistrationId? id;
final FirebaseToken? token;
final DeviceClientId? deviceClientId;
final FirebaseExpiredTime? expires;
final List<TypeName>? types;
FirebaseRegistration({
this.id,
this.token,
this.deviceClientId,
this.expires,
this.types
});
factory FirebaseRegistration.fromJson(Map<String, dynamic> json) => _$FirebaseRegistrationFromJson(json);
Map<String, dynamic> toJson() => _$FirebaseRegistrationToJson(this);
@override
List<Object?> get props => [id, token, deviceClientId, expires, types];
}
@@ -0,0 +1,13 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/jmap/core/id.dart';
class FirebaseRegistrationId with EquatableMixin {
final Id id;
FirebaseRegistrationId(this.id);
@override
List<Object?> get props => [id];
}
+12
View File
@@ -0,0 +1,12 @@
import 'package:equatable/equatable.dart';
class FirebaseToken with EquatableMixin {
final String value;
FirebaseToken(this.value);
@override
List<Object?> get props => [value];
}
+12
View File
@@ -0,0 +1,12 @@
import 'package:equatable/equatable.dart';
class TypeName with EquatableMixin {
final String value;
TypeName(this.value);
@override
List<Object?> get props => [value];
}