TF-548 Create some object for contact

This commit is contained in:
dab246
2022-05-12 12:41:36 +07:00
committed by Dat H. Pham
parent 5ba4097661
commit 41e50c0a98
3 changed files with 64 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
import 'package:equatable/equatable.dart';
abstract class Contact with EquatableMixin {
@override
List<Object?> get props => [];
}
@@ -0,0 +1,21 @@
import 'package:jmap_dart_client/jmap/core/filter/filter.dart';
import 'package:json_annotation/json_annotation.dart';
part 'contact_filter.g.dart';
@JsonSerializable()
class ContactFilter extends Filter {
final String text;
ContactFilter(this.text);
factory ContactFilter.fromJson(Map<String, dynamic> json) =>
_$ContactFilterFromJson(json);
@override
Map<String, dynamic> toJson() => _$ContactFilterToJson(this);
@override
List<Object?> get props => [text];
}
@@ -0,0 +1,36 @@
import 'package:contact/contact/model/contact.dart';
import 'package:json_annotation/json_annotation.dart';
part 'tmail_contact.g.dart';
@JsonSerializable()
class TMailContact extends Contact {
final String id;
final String emailAddress;
@JsonKey(includeIfNull: false)
final String? firstname;
@JsonKey(includeIfNull: false)
final String? surname;
TMailContact(
this.id,
this.firstname,
this.surname,
this.emailAddress);
factory TMailContact.fromJson(Map<String, dynamic> json) =>
_$TMailContactFromJson(json);
Map<String, dynamic> toJson() => _$TMailContactToJson(this);
@override
List<Object?> get props => [
id,
firstname,
surname,
emailAddress];
}