import { database } from 'src/watermelondb'; import BlockedUser from 'src/watermelondb/models/BlockedUser'; type Blocked = { id: number; first_name: string; last_name: string; avatar: string | null; }; export async function upsertBlockedUsers(users: Blocked[]) { if (!users?.length) return; const collection = database.get('blocked_users'); const existingBlocked = await collection.query().fetch(); await database.write(async () => { const batch: any[] = []; for (const u of users) { const existing = existingBlocked.find((ec) => ec.userId && ec.userId === u.id); if (existing) { batch.push( existing.prepareUpdate((rec) => { rec.firstName = u.first_name; rec.lastName = u.last_name; rec.avatar = u.avatar ?? null; rec.removed = false; }) ); } else { batch.push( collection.prepareCreate((rec) => { rec.userId = u.id; rec.firstName = u.first_name; rec.lastName = u.last_name; rec.avatar = u.avatar ?? null; rec.removed = false; }) ); } } await database.batch(batch); }); }