~emersion/goguma

1ce8aa6b64ff0a60a3f414f84f80d03eda6adff7 — Simon Ser 13 days ago fa19560
database: add Message.network_msgid column

Will be useful for e.g. reply and react.
1 files changed, 9 insertions(+), 1 deletions(-)

M lib/database.dart
M lib/database.dart => lib/database.dart +9 -1
@@ 180,6 180,7 @@ class BufferEntry {
class MessageEntry {
	int? id;
	final String time;
	final String? networkMsgid;
	final int buffer;
	final String raw;



@@ 190,6 191,7 @@ class MessageEntry {
		return <String, Object?>{
			'id': id,
			'time': time,
			'network_msgid': networkMsgid,
			'buffer': buffer,
			'raw': raw,
		};


@@ 197,12 199,14 @@ class MessageEntry {

	MessageEntry(IrcMessage msg, this.buffer) :
		time = msg.tags['time'] ?? formatIrcTime(DateTime.now()),
		networkMsgid = msg.tags['msgid'],
		raw = msg.toString(),
		_msg = msg;

	MessageEntry.fromMap(Map<String, dynamic> m) :
		id = m['id'] as int,
		time = m['time'] as String,
		networkMsgid = m['msgid'] as String?,
		buffer = m['buffer'] as int,
		raw = m['raw'] as String;



@@ 356,6 360,7 @@ const _schema = [
		CREATE TABLE Message (
			id INTEGER PRIMARY KEY,
			time TEXT NOT NULL,
			network_msgid TEXT,
			buffer INTEGER NOT NULL,
			raw TEXT NOT NULL,
			FOREIGN KEY (buffer) REFERENCES Buffer(id) ON DELETE CASCADE


@@ 365,6 370,7 @@ const _schema = [
		CREATE INDEX index_message_buffer_time
		ON Message(buffer, time);
	''',
	'CREATE INDEX index_message_network_msgid on Message(network_msgid);'
	'''
		CREATE TABLE WebPushSubscription (
			id INTEGER PRIMARY KEY,


@@ 432,6 438,8 @@ const _migrations = [
	''',
	'ALTER TABLE Network ADD COLUMN bouncer_name TEXT;',
	'ALTER TABLE Buffer ADD COLUMN archived INTEGER NOT NULL DEFAULT 0;',
	'ALTER TABLE Message ADD COLUMN network_msgid TEXT;',
	'CREATE INDEX index_message_network_msgid on Message(network_msgid);'
];

class DB {


@@ 652,7 660,7 @@ class DB {
			params += [msg, msg];
		}
		var entries = await _db.rawQuery('''
			SELECT id, time, buffer, raw
			SELECT id, time, network_msgid, buffer, raw
			FROM Message
			WHERE $where
			ORDER BY time DESC LIMIT ?