mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-03 19:54:12 +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