import { SyncManager } from '@/lib/sync-manager'; import type { Bank } from '@/types/account'; import type { UUID } from '@/types/uuid'; class BankSyncService { private syncManager: SyncManager; constructor() { this.syncManager = new SyncManager({ storeName: 'banks', endpoint: '/api/sync/banks', }); } async sync() { return await this.syncManager.sync(); } async getAll(): Promise { return await this.syncManager.getAll(); } async getById(id: UUID): Promise { return await this.syncManager.getById(id); } async search(query: string): Promise { const allBanks = await this.getAll(); const lowerQuery = query.toLowerCase(); return allBanks.filter((bank) => bank.name.toLowerCase().includes(lowerQuery), ); } async getLastSyncTime(): Promise { return await this.syncManager.getLastSyncTime(); } isSyncing(): boolean { return this.syncManager.isSyncing(); } } export const bankSyncService = new BankSyncService();