Files
tfm_ainventory/frontend/lib/db.ts
Daniel Bedeleanu 725a6cad85 fix(6): revert Item.id to optional to fix delete function
Made id required (breaking change) - reverted back to optional
This allows items without id to exist during lifecycle
Fixes 'Failed to delete item' error

The delete function was broken by forcing id to be required
2026-04-22 19:38:45 +03:00

52 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;
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<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();