diff --git a/client/src/db/database.ts b/client/src/db/database.ts index 164d264..785a69a 100644 --- a/client/src/db/database.ts +++ b/client/src/db/database.ts @@ -42,7 +42,11 @@ const createDatabase = async (): Promise => { await db.addCollections({ transactions: { - schema: TransactionSchema + schema: TransactionSchema, + migrationStrategies: { + // Identity migration for adding indexes + 1: (oldDoc) => oldDoc + } }, inventory: { schema: InventorySchema diff --git a/client/src/db/schema.ts b/client/src/db/schema.ts index bc4bb84..fb1ca2b 100644 --- a/client/src/db/schema.ts +++ b/client/src/db/schema.ts @@ -6,9 +6,10 @@ import { // --- Transaction Event (Write Model) --- export const TRANSACTION_SCHEMA_LITERAL = { - version: 0, + version: 1, primaryKey: 'id', type: 'object', + indexes: [['sku', 'timestamp']], properties: { id: { type: 'string', @@ -48,7 +49,7 @@ export const TRANSACTION_SCHEMA_LITERAL = { required: ['id', 'type', 'sku', 'qty', 'timestamp', 'sync_status'] } as const; -const schemaTypedTransaction = toTypedRxJsonSchema(TRANSACTION_SCHEMA_LITERAL); +export const schemaTypedTransaction = toTypedRxJsonSchema(TRANSACTION_SCHEMA_LITERAL); export type TransactionDocType = ExtractDocumentTypeFromTypedRxJsonSchema; export const TransactionSchema: RxJsonSchema = TRANSACTION_SCHEMA_LITERAL; @@ -79,7 +80,7 @@ export const INVENTORY_SCHEMA_LITERAL = { required: ['sku', 'batch_id', 'current_stock'] } as const; -const schemaTypedInventory = toTypedRxJsonSchema(INVENTORY_SCHEMA_LITERAL); +export const schemaTypedInventory = toTypedRxJsonSchema(INVENTORY_SCHEMA_LITERAL); export type InventoryDocType = ExtractDocumentTypeFromTypedRxJsonSchema; export const InventorySchema: RxJsonSchema = INVENTORY_SCHEMA_LITERAL; @@ -110,7 +111,7 @@ export const PATIENT_SCHEMA_LITERAL = { required: ['id', 'name', 'municipality'] } as const; -const schemaTypedPatient = toTypedRxJsonSchema(PATIENT_SCHEMA_LITERAL); +export const schemaTypedPatient = toTypedRxJsonSchema(PATIENT_SCHEMA_LITERAL); export type PatientDocType = ExtractDocumentTypeFromTypedRxJsonSchema; export const PatientSchema: RxJsonSchema = PATIENT_SCHEMA_LITERAL;