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; photo_path?: string; photo_thumbnail_path?: string; photo_upload_date?: 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; pendingOperations!: Table; 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();