mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +00:00
Cache conversation messages
This commit is contained in:
@ -1,11 +1,14 @@
|
||||
import 'package:comunic/helpers/database/database_contract.dart';
|
||||
import 'package:comunic/models/cache_model.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
/// Single conversation message
|
||||
///
|
||||
/// @author Pierre HUBERT
|
||||
|
||||
class ConversationMessage implements Comparable {
|
||||
class ConversationMessage extends CacheModel implements Comparable {
|
||||
final int id;
|
||||
final int conversationID;
|
||||
final int userID;
|
||||
final int timeInsert;
|
||||
final String message;
|
||||
@ -13,6 +16,7 @@ class ConversationMessage implements Comparable {
|
||||
|
||||
const ConversationMessage({
|
||||
@required this.id,
|
||||
@required this.conversationID,
|
||||
@required this.userID,
|
||||
@required this.timeInsert,
|
||||
@required this.message,
|
||||
@ -20,15 +24,38 @@ class ConversationMessage implements Comparable {
|
||||
}) : assert(id != null),
|
||||
assert(userID != null),
|
||||
assert(timeInsert != null),
|
||||
assert(message != null);
|
||||
assert(message != null),
|
||||
super(id: id);
|
||||
|
||||
DateTime get date => DateTime.fromMillisecondsSinceEpoch(timeInsert * 1000);
|
||||
bool get hasMessage => message != null && message.length > 0;
|
||||
bool get hasImage => imageURL != null;
|
||||
|
||||
bool get hasMessage => message != null && message.length > 0;
|
||||
|
||||
bool get hasImage => imageURL != null && imageURL != "null";
|
||||
|
||||
@override
|
||||
int compareTo(other) {
|
||||
return id.compareTo(other.id);
|
||||
}
|
||||
|
||||
@override
|
||||
Map<String, dynamic> toMap() {
|
||||
return {
|
||||
ConversationsMessagesTableContract.C_ID: id,
|
||||
ConversationsMessagesTableContract.C_CONVERSATION_ID: conversationID,
|
||||
ConversationsMessagesTableContract.C_USER_ID: userID,
|
||||
ConversationsMessagesTableContract.C_TIME_INSERT: timeInsert,
|
||||
ConversationsMessagesTableContract.C_MESSAGE: message,
|
||||
ConversationsMessagesTableContract.C_IMAGE_URL: imageURL
|
||||
};
|
||||
}
|
||||
|
||||
ConversationMessage.fromMap(Map<String, dynamic> map)
|
||||
: id = map[ConversationsMessagesTableContract.C_ID],
|
||||
conversationID = map[ConversationsMessagesTableContract.C_CONVERSATION_ID],
|
||||
userID = map[ConversationsMessagesTableContract.C_USER_ID],
|
||||
timeInsert = map[ConversationsMessagesTableContract.C_TIME_INSERT],
|
||||
message = map[ConversationsMessagesTableContract.C_MESSAGE],
|
||||
imageURL = map[ConversationsMessagesTableContract.C_IMAGE_URL],
|
||||
super.fromMap(map);
|
||||
}
|
||||
|
Reference in New Issue
Block a user