db.ts
The whole database layer. Save as src/db.ts.
Part of Offline Expense Tracker (installable app) by Admin
// src/db.ts
import Dexie, { type EntityTable } from 'dexie';
export interface Expense {
id: number;
date: string; // YYYY-MM-DD
amount: number; // integer paise/cents
category: string;
note?: string;
}
export interface Budget {
category: string; // primary key
monthly: number; // integer paise/cents
}
export const db = new Dexie('ExpenseTracker') as Dexie & {
expenses: EntityTable<Expense, 'id'>;
budgets: EntityTable<Budget, 'category'>;
};
db.version(1).stores({
expenses: '++id, date, category',
budgets: 'category',
});