added db migrations

This commit is contained in:
otsmr 2025-06-05 17:31:47 +02:00
parent 6c630c78b5
commit 7157d286a0
5 changed files with 625 additions and 17 deletions

File diff suppressed because one or more lines are too long

View file

@ -53,7 +53,7 @@ class TwonlyDatabase extends _$TwonlyDatabase {
TwonlyDatabase.forTesting(DatabaseConnection super.connection);
@override
int get schemaVersion => 10;
int get schemaVersion => 11;
static QueryExecutor _openConnection() {
return driftDatabase(
@ -118,6 +118,9 @@ class TwonlyDatabase extends _$TwonlyDatabase {
m.createTable(signalContactSignedPreKeys);
m.addColumn(schema.contacts, schema.contacts.deleted);
},
from10To11: (m, schema) async {
m.createTable(messageRetransmissions);
},
),
);
}

View file

@ -2192,6 +2192,279 @@ i1.GeneratedColumn<i2.Uint8List> _column_61(String aliasedName) =>
i1.GeneratedColumn<i2.Uint8List>(
'signed_pre_key_signature', aliasedName, false,
type: i1.DriftSqlType.blob);
final class Schema11 extends i0.VersionedSchema {
Schema11({required super.database}) : super(version: 11);
@override
late final List<i1.DatabaseSchemaEntity> entities = [
contacts,
messages,
mediaUploads,
mediaDownloads,
signalIdentityKeyStores,
signalPreKeyStores,
signalSenderKeyStores,
signalSessionStores,
signalContactPreKeys,
signalContactSignedPreKeys,
messageRetransmissions,
];
late final Shape13 contacts = Shape13(
source: i0.VersionedTable(
entityName: 'contacts',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(user_id)',
],
columns: [
_column_0,
_column_1,
_column_2,
_column_3,
_column_4,
_column_5,
_column_6,
_column_7,
_column_8,
_column_9,
_column_39,
_column_53,
_column_57,
_column_54,
_column_40,
_column_10,
_column_11,
_column_12,
_column_13,
_column_14,
_column_55,
_column_15,
_column_16,
],
attachedDatabase: database,
),
alias: null);
late final Shape10 messages = Shape10(
source: i0.VersionedTable(
entityName: 'messages',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_17,
_column_18,
_column_19,
_column_48,
_column_49,
_column_20,
_column_21,
_column_22,
_column_52,
_column_23,
_column_24,
_column_25,
_column_26,
_column_27,
_column_28,
_column_29,
_column_30,
],
attachedDatabase: database,
),
alias: null);
late final Shape7 mediaUploads = Shape7(
source: i0.VersionedTable(
entityName: 'media_uploads',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_41,
_column_42,
_column_56,
_column_44,
_column_45,
_column_46,
_column_47,
],
attachedDatabase: database,
),
alias: null);
late final Shape9 mediaDownloads = Shape9(
source: i0.VersionedTable(
entityName: 'media_downloads',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_50,
_column_51,
],
attachedDatabase: database,
),
alias: null);
late final Shape2 signalIdentityKeyStores = Shape2(
source: i0.VersionedTable(
entityName: 'signal_identity_key_stores',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(device_id, name)',
],
columns: [
_column_31,
_column_32,
_column_33,
_column_10,
],
attachedDatabase: database,
),
alias: null);
late final Shape3 signalPreKeyStores = Shape3(
source: i0.VersionedTable(
entityName: 'signal_pre_key_stores',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(pre_key_id)',
],
columns: [
_column_34,
_column_35,
_column_10,
],
attachedDatabase: database,
),
alias: null);
late final Shape4 signalSenderKeyStores = Shape4(
source: i0.VersionedTable(
entityName: 'signal_sender_key_stores',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(sender_key_name)',
],
columns: [
_column_36,
_column_37,
],
attachedDatabase: database,
),
alias: null);
late final Shape5 signalSessionStores = Shape5(
source: i0.VersionedTable(
entityName: 'signal_session_stores',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(device_id, name)',
],
columns: [
_column_31,
_column_32,
_column_38,
_column_10,
],
attachedDatabase: database,
),
alias: null);
late final Shape14 signalContactPreKeys = Shape14(
source: i0.VersionedTable(
entityName: 'signal_contact_pre_keys',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(contact_id, pre_key_id)',
],
columns: [
_column_58,
_column_34,
_column_35,
_column_10,
],
attachedDatabase: database,
),
alias: null);
late final Shape15 signalContactSignedPreKeys = Shape15(
source: i0.VersionedTable(
entityName: 'signal_contact_signed_pre_keys',
withoutRowId: false,
isStrict: false,
tableConstraints: [
'PRIMARY KEY(contact_id)',
],
columns: [
_column_58,
_column_59,
_column_60,
_column_61,
_column_10,
],
attachedDatabase: database,
),
alias: null);
late final Shape16 messageRetransmissions = Shape16(
source: i0.VersionedTable(
entityName: 'message_retransmissions',
withoutRowId: false,
isStrict: false,
tableConstraints: [],
columns: [
_column_62,
_column_63,
_column_64,
_column_65,
_column_66,
_column_67,
],
attachedDatabase: database,
),
alias: null);
}
class Shape16 extends i0.VersionedTable {
Shape16({required super.source, required super.alias}) : super.aliased();
i1.GeneratedColumn<int> get retransmissionId =>
columnsByName['retransmission_id']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<int> get contactId =>
columnsByName['contact_id']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<int> get messageId =>
columnsByName['message_id']! as i1.GeneratedColumn<int>;
i1.GeneratedColumn<i2.Uint8List> get plaintextContent =>
columnsByName['plaintext_content']! as i1.GeneratedColumn<i2.Uint8List>;
i1.GeneratedColumn<i2.Uint8List> get pushData =>
columnsByName['push_data']! as i1.GeneratedColumn<i2.Uint8List>;
i1.GeneratedColumn<DateTime> get acknowledgeByServerAt =>
columnsByName['acknowledge_by_server_at']!
as i1.GeneratedColumn<DateTime>;
}
i1.GeneratedColumn<int> _column_62(String aliasedName) =>
i1.GeneratedColumn<int>('retransmission_id', aliasedName, false,
hasAutoIncrement: true,
type: i1.DriftSqlType.int,
defaultConstraints:
i1.GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
i1.GeneratedColumn<int> _column_63(String aliasedName) =>
i1.GeneratedColumn<int>('contact_id', aliasedName, false,
type: i1.DriftSqlType.int,
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
'REFERENCES contacts (user_id) ON DELETE CASCADE'));
i1.GeneratedColumn<int> _column_64(String aliasedName) =>
i1.GeneratedColumn<int>('message_id', aliasedName, true,
type: i1.DriftSqlType.int,
defaultConstraints: i1.GeneratedColumn.constraintIsAlways(
'REFERENCES messages (message_id) ON DELETE CASCADE'));
i1.GeneratedColumn<i2.Uint8List> _column_65(String aliasedName) =>
i1.GeneratedColumn<i2.Uint8List>('plaintext_content', aliasedName, false,
type: i1.DriftSqlType.blob);
i1.GeneratedColumn<i2.Uint8List> _column_66(String aliasedName) =>
i1.GeneratedColumn<i2.Uint8List>('push_data', aliasedName, true,
type: i1.DriftSqlType.blob);
i1.GeneratedColumn<DateTime> _column_67(String aliasedName) =>
i1.GeneratedColumn<DateTime>('acknowledge_by_server_at', aliasedName, true,
type: i1.DriftSqlType.dateTime);
i0.MigrationStepWithVersion migrationSteps({
required Future<void> Function(i1.Migrator m, Schema2 schema) from1To2,
required Future<void> Function(i1.Migrator m, Schema3 schema) from2To3,
@ -2202,6 +2475,7 @@ i0.MigrationStepWithVersion migrationSteps({
required Future<void> Function(i1.Migrator m, Schema8 schema) from7To8,
required Future<void> Function(i1.Migrator m, Schema9 schema) from8To9,
required Future<void> Function(i1.Migrator m, Schema10 schema) from9To10,
required Future<void> Function(i1.Migrator m, Schema11 schema) from10To11,
}) {
return (currentVersion, database) async {
switch (currentVersion) {
@ -2250,6 +2524,11 @@ i0.MigrationStepWithVersion migrationSteps({
final migrator = i1.Migrator(database, schema);
await from9To10(migrator, schema);
return 10;
case 10:
final schema = Schema11(database: database);
final migrator = i1.Migrator(database, schema);
await from10To11(migrator, schema);
return 11;
default:
throw ArgumentError.value('Unknown migration from $currentVersion');
}
@ -2266,6 +2545,7 @@ i1.OnUpgrade stepByStep({
required Future<void> Function(i1.Migrator m, Schema8 schema) from7To8,
required Future<void> Function(i1.Migrator m, Schema9 schema) from8To9,
required Future<void> Function(i1.Migrator m, Schema10 schema) from9To10,
required Future<void> Function(i1.Migrator m, Schema11 schema) from10To11,
}) =>
i0.VersionedSchema.stepByStepHelper(
step: migrationSteps(
@ -2278,4 +2558,5 @@ i1.OnUpgrade stepByStep({
from7To8: from7To8,
from8To9: from8To9,
from9To10: from9To10,
from10To11: from10To11,
));

View file

@ -13,6 +13,7 @@ import 'schema_v7.dart' as v7;
import 'schema_v8.dart' as v8;
import 'schema_v9.dart' as v9;
import 'schema_v10.dart' as v10;
import 'schema_v11.dart' as v11;
class GeneratedHelper implements SchemaInstantiationHelper {
@override
@ -38,10 +39,12 @@ class GeneratedHelper implements SchemaInstantiationHelper {
return v9.DatabaseAtV9(db);
case 10:
return v10.DatabaseAtV10(db);
case 11:
return v11.DatabaseAtV11(db);
default:
throw MissingSchemaException(version, versions);
}
}
static const versions = const [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
static const versions = const [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
}

View file

@ -916,8 +916,8 @@ class Messages extends Table with TableInfo<Messages, MessagesData> {
'contact_id', aliasedName, false,
type: DriftSqlType.int,
requiredDuringInsert: true,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'REFERENCES contacts (user_id) ON DELETE CASCADE'));
defaultConstraints:
GeneratedColumn.constraintIsAlways('REFERENCES contacts (user_id)'));
late final GeneratedColumn<int> messageId = GeneratedColumn<int>(
'message_id', aliasedName, false,
hasAutoIncrement: true,
@ -1955,10 +1955,7 @@ class MediaDownloads extends Table
MediaDownloads(this.attachedDatabase, [this._alias]);
late final GeneratedColumn<int> messageId = GeneratedColumn<int>(
'message_id', aliasedName, false,
type: DriftSqlType.int,
requiredDuringInsert: true,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'REFERENCES messages (message_id) ON DELETE CASCADE'));
type: DriftSqlType.int, requiredDuringInsert: true);
late final GeneratedColumn<String> downloadToken = GeneratedColumn<String>(
'download_token', aliasedName, false,
type: DriftSqlType.string, requiredDuringInsert: true);
@ -2975,10 +2972,7 @@ class SignalContactPreKeys extends Table
SignalContactPreKeys(this.attachedDatabase, [this._alias]);
late final GeneratedColumn<int> contactId = GeneratedColumn<int>(
'contact_id', aliasedName, false,
type: DriftSqlType.int,
requiredDuringInsert: true,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'REFERENCES contacts (user_id) ON DELETE CASCADE'));
type: DriftSqlType.int, requiredDuringInsert: true);
late final GeneratedColumn<int> preKeyId = GeneratedColumn<int>(
'pre_key_id', aliasedName, false,
type: DriftSqlType.int, requiredDuringInsert: true);
@ -3215,10 +3209,7 @@ class SignalContactSignedPreKeys extends Table
SignalContactSignedPreKeys(this.attachedDatabase, [this._alias]);
late final GeneratedColumn<int> contactId = GeneratedColumn<int>(
'contact_id', aliasedName, false,
type: DriftSqlType.int,
requiredDuringInsert: false,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'REFERENCES contacts (user_id) ON DELETE CASCADE'));
type: DriftSqlType.int, requiredDuringInsert: false);
late final GeneratedColumn<int> signedPreKeyId = GeneratedColumn<int>(
'signed_pre_key_id', aliasedName, false,
type: DriftSqlType.int, requiredDuringInsert: true);
@ -3487,6 +3478,332 @@ class SignalContactSignedPreKeysCompanion
}
}
class MessageRetransmissions extends Table
with TableInfo<MessageRetransmissions, MessageRetransmissionsData> {
@override
final GeneratedDatabase attachedDatabase;
final String? _alias;
MessageRetransmissions(this.attachedDatabase, [this._alias]);
late final GeneratedColumn<int> retransmissionId = GeneratedColumn<int>(
'retransmission_id', aliasedName, false,
hasAutoIncrement: true,
type: DriftSqlType.int,
requiredDuringInsert: false,
defaultConstraints:
GeneratedColumn.constraintIsAlways('PRIMARY KEY AUTOINCREMENT'));
late final GeneratedColumn<int> contactId = GeneratedColumn<int>(
'contact_id', aliasedName, false,
type: DriftSqlType.int,
requiredDuringInsert: true,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'REFERENCES contacts (user_id) ON DELETE CASCADE'));
late final GeneratedColumn<int> messageId = GeneratedColumn<int>(
'message_id', aliasedName, true,
type: DriftSqlType.int,
requiredDuringInsert: false,
defaultConstraints: GeneratedColumn.constraintIsAlways(
'REFERENCES messages (message_id) ON DELETE CASCADE'));
late final GeneratedColumn<Uint8List> plaintextContent =
GeneratedColumn<Uint8List>('plaintext_content', aliasedName, false,
type: DriftSqlType.blob, requiredDuringInsert: true);
late final GeneratedColumn<Uint8List> pushData = GeneratedColumn<Uint8List>(
'push_data', aliasedName, true,
type: DriftSqlType.blob, requiredDuringInsert: false);
late final GeneratedColumn<DateTime> acknowledgeByServerAt =
GeneratedColumn<DateTime>('acknowledge_by_server_at', aliasedName, true,
type: DriftSqlType.dateTime, requiredDuringInsert: false);
@override
List<GeneratedColumn> get $columns => [
retransmissionId,
contactId,
messageId,
plaintextContent,
pushData,
acknowledgeByServerAt
];
@override
String get aliasedName => _alias ?? actualTableName;
@override
String get actualTableName => $name;
static const String $name = 'message_retransmissions';
@override
Set<GeneratedColumn> get $primaryKey => {retransmissionId};
@override
MessageRetransmissionsData map(Map<String, dynamic> data,
{String? tablePrefix}) {
final effectivePrefix = tablePrefix != null ? '$tablePrefix.' : '';
return MessageRetransmissionsData(
retransmissionId: attachedDatabase.typeMapping
.read(DriftSqlType.int, data['${effectivePrefix}retransmission_id'])!,
contactId: attachedDatabase.typeMapping
.read(DriftSqlType.int, data['${effectivePrefix}contact_id'])!,
messageId: attachedDatabase.typeMapping
.read(DriftSqlType.int, data['${effectivePrefix}message_id']),
plaintextContent: attachedDatabase.typeMapping.read(
DriftSqlType.blob, data['${effectivePrefix}plaintext_content'])!,
pushData: attachedDatabase.typeMapping
.read(DriftSqlType.blob, data['${effectivePrefix}push_data']),
acknowledgeByServerAt: attachedDatabase.typeMapping.read(
DriftSqlType.dateTime,
data['${effectivePrefix}acknowledge_by_server_at']),
);
}
@override
MessageRetransmissions createAlias(String alias) {
return MessageRetransmissions(attachedDatabase, alias);
}
}
class MessageRetransmissionsData extends DataClass
implements Insertable<MessageRetransmissionsData> {
final int retransmissionId;
final int contactId;
final int? messageId;
final Uint8List plaintextContent;
final Uint8List? pushData;
final DateTime? acknowledgeByServerAt;
const MessageRetransmissionsData(
{required this.retransmissionId,
required this.contactId,
this.messageId,
required this.plaintextContent,
this.pushData,
this.acknowledgeByServerAt});
@override
Map<String, Expression> toColumns(bool nullToAbsent) {
final map = <String, Expression>{};
map['retransmission_id'] = Variable<int>(retransmissionId);
map['contact_id'] = Variable<int>(contactId);
if (!nullToAbsent || messageId != null) {
map['message_id'] = Variable<int>(messageId);
}
map['plaintext_content'] = Variable<Uint8List>(plaintextContent);
if (!nullToAbsent || pushData != null) {
map['push_data'] = Variable<Uint8List>(pushData);
}
if (!nullToAbsent || acknowledgeByServerAt != null) {
map['acknowledge_by_server_at'] =
Variable<DateTime>(acknowledgeByServerAt);
}
return map;
}
MessageRetransmissionsCompanion toCompanion(bool nullToAbsent) {
return MessageRetransmissionsCompanion(
retransmissionId: Value(retransmissionId),
contactId: Value(contactId),
messageId: messageId == null && nullToAbsent
? const Value.absent()
: Value(messageId),
plaintextContent: Value(plaintextContent),
pushData: pushData == null && nullToAbsent
? const Value.absent()
: Value(pushData),
acknowledgeByServerAt: acknowledgeByServerAt == null && nullToAbsent
? const Value.absent()
: Value(acknowledgeByServerAt),
);
}
factory MessageRetransmissionsData.fromJson(Map<String, dynamic> json,
{ValueSerializer? serializer}) {
serializer ??= driftRuntimeOptions.defaultSerializer;
return MessageRetransmissionsData(
retransmissionId: serializer.fromJson<int>(json['retransmissionId']),
contactId: serializer.fromJson<int>(json['contactId']),
messageId: serializer.fromJson<int?>(json['messageId']),
plaintextContent:
serializer.fromJson<Uint8List>(json['plaintextContent']),
pushData: serializer.fromJson<Uint8List?>(json['pushData']),
acknowledgeByServerAt:
serializer.fromJson<DateTime?>(json['acknowledgeByServerAt']),
);
}
@override
Map<String, dynamic> toJson({ValueSerializer? serializer}) {
serializer ??= driftRuntimeOptions.defaultSerializer;
return <String, dynamic>{
'retransmissionId': serializer.toJson<int>(retransmissionId),
'contactId': serializer.toJson<int>(contactId),
'messageId': serializer.toJson<int?>(messageId),
'plaintextContent': serializer.toJson<Uint8List>(plaintextContent),
'pushData': serializer.toJson<Uint8List?>(pushData),
'acknowledgeByServerAt':
serializer.toJson<DateTime?>(acknowledgeByServerAt),
};
}
MessageRetransmissionsData copyWith(
{int? retransmissionId,
int? contactId,
Value<int?> messageId = const Value.absent(),
Uint8List? plaintextContent,
Value<Uint8List?> pushData = const Value.absent(),
Value<DateTime?> acknowledgeByServerAt = const Value.absent()}) =>
MessageRetransmissionsData(
retransmissionId: retransmissionId ?? this.retransmissionId,
contactId: contactId ?? this.contactId,
messageId: messageId.present ? messageId.value : this.messageId,
plaintextContent: plaintextContent ?? this.plaintextContent,
pushData: pushData.present ? pushData.value : this.pushData,
acknowledgeByServerAt: acknowledgeByServerAt.present
? acknowledgeByServerAt.value
: this.acknowledgeByServerAt,
);
MessageRetransmissionsData copyWithCompanion(
MessageRetransmissionsCompanion data) {
return MessageRetransmissionsData(
retransmissionId: data.retransmissionId.present
? data.retransmissionId.value
: this.retransmissionId,
contactId: data.contactId.present ? data.contactId.value : this.contactId,
messageId: data.messageId.present ? data.messageId.value : this.messageId,
plaintextContent: data.plaintextContent.present
? data.plaintextContent.value
: this.plaintextContent,
pushData: data.pushData.present ? data.pushData.value : this.pushData,
acknowledgeByServerAt: data.acknowledgeByServerAt.present
? data.acknowledgeByServerAt.value
: this.acknowledgeByServerAt,
);
}
@override
String toString() {
return (StringBuffer('MessageRetransmissionsData(')
..write('retransmissionId: $retransmissionId, ')
..write('contactId: $contactId, ')
..write('messageId: $messageId, ')
..write('plaintextContent: $plaintextContent, ')
..write('pushData: $pushData, ')
..write('acknowledgeByServerAt: $acknowledgeByServerAt')
..write(')'))
.toString();
}
@override
int get hashCode => Object.hash(
retransmissionId,
contactId,
messageId,
$driftBlobEquality.hash(plaintextContent),
$driftBlobEquality.hash(pushData),
acknowledgeByServerAt);
@override
bool operator ==(Object other) =>
identical(this, other) ||
(other is MessageRetransmissionsData &&
other.retransmissionId == this.retransmissionId &&
other.contactId == this.contactId &&
other.messageId == this.messageId &&
$driftBlobEquality.equals(
other.plaintextContent, this.plaintextContent) &&
$driftBlobEquality.equals(other.pushData, this.pushData) &&
other.acknowledgeByServerAt == this.acknowledgeByServerAt);
}
class MessageRetransmissionsCompanion
extends UpdateCompanion<MessageRetransmissionsData> {
final Value<int> retransmissionId;
final Value<int> contactId;
final Value<int?> messageId;
final Value<Uint8List> plaintextContent;
final Value<Uint8List?> pushData;
final Value<DateTime?> acknowledgeByServerAt;
const MessageRetransmissionsCompanion({
this.retransmissionId = const Value.absent(),
this.contactId = const Value.absent(),
this.messageId = const Value.absent(),
this.plaintextContent = const Value.absent(),
this.pushData = const Value.absent(),
this.acknowledgeByServerAt = const Value.absent(),
});
MessageRetransmissionsCompanion.insert({
this.retransmissionId = const Value.absent(),
required int contactId,
this.messageId = const Value.absent(),
required Uint8List plaintextContent,
this.pushData = const Value.absent(),
this.acknowledgeByServerAt = const Value.absent(),
}) : contactId = Value(contactId),
plaintextContent = Value(plaintextContent);
static Insertable<MessageRetransmissionsData> custom({
Expression<int>? retransmissionId,
Expression<int>? contactId,
Expression<int>? messageId,
Expression<Uint8List>? plaintextContent,
Expression<Uint8List>? pushData,
Expression<DateTime>? acknowledgeByServerAt,
}) {
return RawValuesInsertable({
if (retransmissionId != null) 'retransmission_id': retransmissionId,
if (contactId != null) 'contact_id': contactId,
if (messageId != null) 'message_id': messageId,
if (plaintextContent != null) 'plaintext_content': plaintextContent,
if (pushData != null) 'push_data': pushData,
if (acknowledgeByServerAt != null)
'acknowledge_by_server_at': acknowledgeByServerAt,
});
}
MessageRetransmissionsCompanion copyWith(
{Value<int>? retransmissionId,
Value<int>? contactId,
Value<int?>? messageId,
Value<Uint8List>? plaintextContent,
Value<Uint8List?>? pushData,
Value<DateTime?>? acknowledgeByServerAt}) {
return MessageRetransmissionsCompanion(
retransmissionId: retransmissionId ?? this.retransmissionId,
contactId: contactId ?? this.contactId,
messageId: messageId ?? this.messageId,
plaintextContent: plaintextContent ?? this.plaintextContent,
pushData: pushData ?? this.pushData,
acknowledgeByServerAt:
acknowledgeByServerAt ?? this.acknowledgeByServerAt,
);
}
@override
Map<String, Expression> toColumns(bool nullToAbsent) {
final map = <String, Expression>{};
if (retransmissionId.present) {
map['retransmission_id'] = Variable<int>(retransmissionId.value);
}
if (contactId.present) {
map['contact_id'] = Variable<int>(contactId.value);
}
if (messageId.present) {
map['message_id'] = Variable<int>(messageId.value);
}
if (plaintextContent.present) {
map['plaintext_content'] = Variable<Uint8List>(plaintextContent.value);
}
if (pushData.present) {
map['push_data'] = Variable<Uint8List>(pushData.value);
}
if (acknowledgeByServerAt.present) {
map['acknowledge_by_server_at'] =
Variable<DateTime>(acknowledgeByServerAt.value);
}
return map;
}
@override
String toString() {
return (StringBuffer('MessageRetransmissionsCompanion(')
..write('retransmissionId: $retransmissionId, ')
..write('contactId: $contactId, ')
..write('messageId: $messageId, ')
..write('plaintextContent: $plaintextContent, ')
..write('pushData: $pushData, ')
..write('acknowledgeByServerAt: $acknowledgeByServerAt')
..write(')'))
.toString();
}
}
class DatabaseAtV11 extends GeneratedDatabase {
DatabaseAtV11(QueryExecutor e) : super(e);
late final Contacts contacts = Contacts(this);
@ -3504,6 +3821,8 @@ class DatabaseAtV11 extends GeneratedDatabase {
SignalContactPreKeys(this);
late final SignalContactSignedPreKeys signalContactSignedPreKeys =
SignalContactSignedPreKeys(this);
late final MessageRetransmissions messageRetransmissions =
MessageRetransmissions(this);
@override
Iterable<TableInfo<Table, Object?>> get allTables =>
allSchemaEntities.whereType<TableInfo<Table, Object?>>();
@ -3518,7 +3837,8 @@ class DatabaseAtV11 extends GeneratedDatabase {
signalSenderKeyStores,
signalSessionStores,
signalContactPreKeys,
signalContactSignedPreKeys
signalContactSignedPreKeys,
messageRetransmissions
];
@override
int get schemaVersion => 11;