import { openDB, type IDBPDatabase } from 'idb' export interface PendingReport { id?: number zone_token: string incident_type: string description: string injury_involved: boolean asset_involved: boolean medical_status?: string type_details?: Record truck_id?: string created_at: string } let dbPromise: Promise | null = null function getDb(): Promise { if (!dbPromise) { dbPromise = openDB('ims-offline', 1, { upgrade(db) { db.createObjectStore('pending_reports', { keyPath: 'id', autoIncrement: true }) }, }) } return dbPromise } export async function addPendingReport(report: Omit): Promise { const db = await getDb() return db.add('pending_reports', report) as Promise } export async function getPendingReports(): Promise { const db = await getDb() return db.getAll('pending_reports') } export async function removePendingReport(id: number): Promise { const db = await getDb() return db.delete('pending_reports', id) } export async function getPendingCount(): Promise { const db = await getDb() return db.count('pending_reports') }