feat: add remote pull and push
This commit is contained in:
@@ -38,6 +38,8 @@ class BarTabs extends Table {
|
||||
|
||||
DateTimeColumn get closedAt => dateTime().nullable()();
|
||||
|
||||
IntColumn get version => integer().withDefault(const Constant(0))();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {id};
|
||||
}
|
||||
@@ -138,24 +140,51 @@ class AppSettingsTable extends Table {
|
||||
Set<Column> get primaryKey => {id};
|
||||
}
|
||||
|
||||
@DataClassName('RemoteSyncStateRow')
|
||||
class RemoteSyncState extends Table {
|
||||
TextColumn get deviceId => text()();
|
||||
|
||||
TextColumn get serverCursor => text().nullable()();
|
||||
|
||||
DateTimeColumn get lastSuccessfulSyncAt => dateTime().nullable()();
|
||||
|
||||
DateTimeColumn get lastAttemptedSyncAt => dateTime().nullable()();
|
||||
|
||||
IntColumn get consecutiveFailureCount => integer().withDefault(const Constant(0))();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {deviceId};
|
||||
}
|
||||
|
||||
@DataClassName('ProcessedRemoteCommandRow')
|
||||
class ProcessedRemoteCommands extends Table {
|
||||
TextColumn get commandId => text()();
|
||||
TextColumn get commandType => text()();
|
||||
DateTimeColumn get processedAt => dateTime()();
|
||||
TextColumn get result => text()();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {commandId};
|
||||
}
|
||||
|
||||
@DriftDatabase(
|
||||
tables: [
|
||||
Products,
|
||||
BarTabs,
|
||||
TabItems,
|
||||
TabItemPurchases,
|
||||
|
||||
ClosedTabs,
|
||||
ClosedTabItems,
|
||||
|
||||
AppSettingsTable,
|
||||
RemoteSyncState,
|
||||
ProcessedRemoteCommands,
|
||||
],
|
||||
)
|
||||
class AppDatabase extends _$AppDatabase {
|
||||
AppDatabase([QueryExecutor? executor]) : super(executor ?? _openConnection());
|
||||
|
||||
@override
|
||||
int get schemaVersion => 11;
|
||||
int get schemaVersion => 12;
|
||||
|
||||
@override
|
||||
MigrationStrategy get migration {
|
||||
@@ -232,6 +261,14 @@ class AppDatabase extends _$AppDatabase {
|
||||
if (from < 11) {
|
||||
await migrator.createTable(tabItemPurchases);
|
||||
}
|
||||
|
||||
if (from < 12) {
|
||||
if (!await hasTableColumn('bar_tabs', 'version')) {
|
||||
await migrator.addColumn(barTabs, barTabs.version);
|
||||
}
|
||||
await migrator.createTable(remoteSyncState);
|
||||
await migrator.createTable(processedRemoteCommands);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
@@ -244,4 +281,4 @@ class AppDatabase extends _$AppDatabase {
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user