Init model module

This commit is contained in:
dab246
2021-07-27 12:51:15 +07:00
committed by Dat H. Pham
parent 5b0a8f6fb2
commit c235fcdecd
12 changed files with 374 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
import 'package:equatable/equatable.dart';
class Password with EquatableMixin {
final String value;
Password(this.value);
@override
List<Object> get props => [value];
}
+10
View File
@@ -0,0 +1,10 @@
import 'package:equatable/equatable.dart';
class UserName with EquatableMixin {
final String userName;
UserName(this.userName);
@override
List<Object> get props => [userName];
}
+1
View File
@@ -0,0 +1 @@
enum ExpandMode { COLLAPSE, EXPAND }
@@ -0,0 +1,63 @@
import 'package:equatable/equatable.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox_rights.dart';
import 'package:model/mailbox/select_mode.dart';
class PresentationMailbox with EquatableMixin {
final MailboxId id;
final MailboxName? name;
final MailboxId? parentId;
final Role? role;
final SortOrder? sortOrder;
final TotalEmails? totalEmails;
final UnreadEmails? unreadEmails;
final TotalThreads? totalThreads;
final UnreadThreads? unreadThreads;
final MailboxRights? myRights;
final IsSubscribed? isSubscribed;
final SelectMode selectMode;
PresentationMailbox(
this.id,
{
this.name,
this.parentId,
this.role,
this.sortOrder,
this.totalEmails,
this.unreadEmails,
this.totalThreads,
this.unreadThreads,
this.myRights,
this.isSubscribed,
this.selectMode = SelectMode.INACTIVE
}
);
bool hasParentId() => parentId != null && parentId!.id.value.isNotEmpty;
bool hasRole() => role != null && role!.value.isNotEmpty;
String getCountUnReadEmails() {
if (unreadEmails == null) {
return '';
} else {
if (unreadEmails!.value.value <= 0) {
return '';
} else {
return unreadEmails!.value.value <= 999
? '${unreadEmails!.value.value}'
: '999+';
}
}
}
@override
List<Object?> get props => [
id,
name,
parentId,
role
];
}
+1
View File
@@ -0,0 +1 @@
enum SelectMode { ACTIVE, INACTIVE }
+13
View File
@@ -0,0 +1,13 @@
library model;
// Account
export 'account/user_name.dart';
export 'account/password.dart';
// User
export 'user/user_id.dart';
export 'user/user.dart';
// Mailbox
export 'mailbox/presentation_mailbox.dart';
export 'mailbox/select_mode.dart';
export 'mailbox/expand_mode.dart';
+22
View File
@@ -0,0 +1,22 @@
import 'package:equatable/equatable.dart';
import 'package:model/user/user_id.dart';
class User with EquatableMixin {
final UserId userId;
final String firstName;
final String lastName;
User(
this.userId,
this.firstName,
this.lastName,
);
@override
List<Object> get props => [
userId,
firstName,
lastName,
];
}
+10
View File
@@ -0,0 +1,10 @@
import 'package:equatable/equatable.dart';
class UserId with EquatableMixin {
final String id;
UserId(this.id);
@override
List<Object?> get props => [id];
}