feat: make server owner of tabs
This commit is contained in:
@@ -162,6 +162,9 @@ class RemoteSyncState extends Table {
|
||||
|
||||
TextColumn get serverCursor => text().nullable()();
|
||||
|
||||
/// Where the feed of settlements made anywhere in the venue left off.
|
||||
TextColumn get settlementsCursor => text().nullable()();
|
||||
|
||||
DateTimeColumn get lastSuccessfulSyncAt => dateTime().nullable()();
|
||||
|
||||
DateTimeColumn get lastAttemptedSyncAt => dateTime().nullable()();
|
||||
@@ -204,6 +207,26 @@ class TabEvents extends Table {
|
||||
Set<Column> get primaryKey => {id};
|
||||
}
|
||||
|
||||
/// Outcomes of the stock adjustments sent by the dashboard, waiting to be
|
||||
/// reported. A row also records that its adjustment was handled, so it is
|
||||
/// kept for a while after the server acknowledges it: the same adjustment
|
||||
/// can still arrive in a response computed before the server saw the outcome.
|
||||
@DataClassName('StockAdjustmentResultRow')
|
||||
class StockAdjustmentResults extends Table {
|
||||
/// The adjustment's id from the server.
|
||||
TextColumn get id => text()();
|
||||
|
||||
/// The outcome as JSON, exactly as it is sent.
|
||||
TextColumn get payload => text()();
|
||||
|
||||
BoolColumn get acknowledged => boolean().withDefault(const Constant(false))();
|
||||
|
||||
DateTimeColumn get createdAt => dateTime()();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {id};
|
||||
}
|
||||
|
||||
@DriftDatabase(
|
||||
tables: [
|
||||
Products,
|
||||
@@ -216,13 +239,14 @@ class TabEvents extends Table {
|
||||
RemoteSyncState,
|
||||
ProcessedRemoteCommands,
|
||||
TabEvents,
|
||||
StockAdjustmentResults,
|
||||
],
|
||||
)
|
||||
class AppDatabase extends _$AppDatabase {
|
||||
AppDatabase([QueryExecutor? executor]) : super(executor ?? _openConnection());
|
||||
|
||||
@override
|
||||
int get schemaVersion => 15;
|
||||
int get schemaVersion => 17;
|
||||
|
||||
@override
|
||||
MigrationStrategy get migration {
|
||||
@@ -325,6 +349,19 @@ class AppDatabase extends _$AppDatabase {
|
||||
if (from < 15) {
|
||||
await migrator.createTable(tabEvents);
|
||||
}
|
||||
|
||||
if (from < 16) {
|
||||
await migrator.createTable(stockAdjustmentResults);
|
||||
}
|
||||
|
||||
if (from < 17 &&
|
||||
await hasTableColumn('remote_sync_state', 'device_id') &&
|
||||
!await hasTableColumn('remote_sync_state', 'settlements_cursor')) {
|
||||
await migrator.addColumn(
|
||||
remoteSyncState,
|
||||
remoteSyncState.settlementsCursor,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user