mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-18 15:58:04 +00:00
Cache conversation messages
This commit is contained in:
@ -0,0 +1,21 @@
|
||||
import 'package:comunic/helpers/database/database_contract.dart';
|
||||
import 'package:comunic/helpers/database/model_database_helper.dart';
|
||||
import 'package:comunic/models/conversation_message.dart';
|
||||
|
||||
/// Conversation messages database helper
|
||||
///
|
||||
/// @author Pierre HUBERT
|
||||
|
||||
class ConversationMessagesDatabaseHelper extends ModelDatabaseHelper<ConversationMessage> {
|
||||
|
||||
@override
|
||||
ConversationMessage initializeFromMap(Map<String, dynamic> map) {
|
||||
return ConversationMessage.fromMap(map);
|
||||
}
|
||||
|
||||
@override
|
||||
String tableName() {
|
||||
return ConversationsMessagesTableContract.TABLE_NAME;
|
||||
}
|
||||
|
||||
}
|
@ -34,4 +34,15 @@ abstract class ConversationTableContract {
|
||||
static const C_FOLLOWING = "following";
|
||||
static const C_SAW_LAST_MESSAGE = "saw_last_message";
|
||||
static const C_MEMBERS = "members";
|
||||
}
|
||||
|
||||
/// Conversations messages table contract
|
||||
abstract class ConversationsMessagesTableContract {
|
||||
static const TABLE_NAME = "conversations_messages";
|
||||
static const C_ID = BaseTableContract.C_ID;
|
||||
static const C_CONVERSATION_ID = "conversation_id";
|
||||
static const C_USER_ID = "user_id";
|
||||
static const C_TIME_INSERT = "time_insert";
|
||||
static const C_MESSAGE = "message";
|
||||
static const C_IMAGE_URL = "image_url";
|
||||
}
|
@ -38,8 +38,12 @@ abstract class DatabaseHelper {
|
||||
await db.execute("DROP TABLE IF EXISTS ${UserTableContract.TABLE_NAME}");
|
||||
|
||||
// Drop conversations table
|
||||
await db
|
||||
.execute("DROP TABLE IF EXISTS ${ConversationTableContract.TABLE_NAME}");
|
||||
await db.execute(
|
||||
"DROP TABLE IF EXISTS ${ConversationTableContract.TABLE_NAME}");
|
||||
|
||||
// Drop conversations messages table
|
||||
await db.execute(
|
||||
"DROP TABLE IF EXISTS ${ConversationsMessagesTableContract.TABLE_NAME}");
|
||||
|
||||
// Initialize database again
|
||||
await _initializeDatabase(db, newVersion);
|
||||
@ -47,7 +51,7 @@ abstract class DatabaseHelper {
|
||||
|
||||
/// Initialize the database
|
||||
static Future<void> _initializeDatabase(Database db, int version) async {
|
||||
//Create users table
|
||||
// Create users table
|
||||
await db.execute("CREATE TABLE ${UserTableContract.TABLE_NAME} ("
|
||||
"${UserTableContract.C_ID} INTEGER PRIMARY KEY, "
|
||||
"${UserTableContract.C_FIRST_NAME} TEXT, "
|
||||
@ -57,7 +61,7 @@ abstract class DatabaseHelper {
|
||||
"${UserTableContract.C_ACCOUNT_IMAGE_URL} TEXT"
|
||||
")");
|
||||
|
||||
//Create conversations table
|
||||
// Create conversations table
|
||||
await db.execute("CREATE TABLE ${ConversationTableContract.TABLE_NAME} ("
|
||||
"${ConversationTableContract.C_ID} INTEGER PRIMARY KEY, "
|
||||
"${ConversationTableContract.C_OWNER_ID} INTEGER, "
|
||||
@ -67,5 +71,16 @@ abstract class DatabaseHelper {
|
||||
"${ConversationTableContract.C_SAW_LAST_MESSAGE} INTEGER, "
|
||||
"${ConversationTableContract.C_MEMBERS} TEXT"
|
||||
")");
|
||||
|
||||
// Create conversation messages table
|
||||
await db.execute(
|
||||
"CREATE TABLE ${ConversationsMessagesTableContract.TABLE_NAME} ("
|
||||
"${ConversationsMessagesTableContract.C_ID} INTEGER PRIMARY KEY, "
|
||||
"${ConversationsMessagesTableContract.C_CONVERSATION_ID} INTEGER, "
|
||||
"${ConversationsMessagesTableContract.C_USER_ID} INTEGER, "
|
||||
"${ConversationsMessagesTableContract.C_TIME_INSERT} INTEGER, "
|
||||
"${ConversationsMessagesTableContract.C_MESSAGE} TEXT, "
|
||||
"${ConversationsMessagesTableContract.C_IMAGE_URL} TEXT"
|
||||
")");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user