Files
Daniel Bedeleanu 00ee4cf9c5 Build [v1.9.19]
2026-04-14 20:44:01 +03:00

49 lines
1.1 KiB
TypeScript

import Dexie, { Table } from 'dexie';
export interface Item {
id?: number;
barcode: string;
name: string;
category: string;
part_number?: string;
color?: string;
specs?: string;
quantity: number;
min_quantity: number;
image_url?: string;
box_label?: string;
labels_data?: string;
serial_number?: string;
type?: string;
description?: string;
connector?: string;
size?: string;
ocr_text?: string;
}
export interface PendingOperation {
id?: number;
type: 'CHECK_IN' | 'CHECK_OUT' | 'TRASH';
barcode: string;
quantity: number;
timestamp: number;
synced: 0 | 1; // 0 for false, 1 for true
uuid: string;
details?: string;
}
export class InventoryDatabase extends Dexie {
items!: Table<Item>;
pendingOperations!: Table<PendingOperation>;
constructor() {
super('InventoryDatabase');
this.version(5).stores({
items: '++id, barcode, name, category, part_number, color, box_label, ocr_text',
pendingOperations: '++id, barcode, timestamp, synced, uuid'
});
}
}
export const db = new InventoryDatabase();