|  |  |  | @ -66,28 +66,37 @@ export class GroupSyncService { | 
		
	
		
			
				|  |  |  |  |     let added = 0; | 
		
	
		
			
				|  |  |  |  |     let updated = 0; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     db.transaction(() => { | 
		
	
		
			
				|  |  |  |  |       // First mark all groups as inactive
 | 
		
	
		
			
				|  |  |  |  |       db.exec('UPDATE groups SET active = FALSE'); | 
		
	
		
			
				|  |  |  |  |     try { | 
		
	
		
			
				|  |  |  |  |       db.transaction(() => { | 
		
	
		
			
				|  |  |  |  |         // First mark all groups as inactive
 | 
		
	
		
			
				|  |  |  |  |         const inactiveResult = db.exec('UPDATE groups SET active = FALSE'); | 
		
	
		
			
				|  |  |  |  |         console.log('Marked groups inactive:', inactiveResult); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |       for (const group of groups) { | 
		
	
		
			
				|  |  |  |  |         const existing = db.query('SELECT 1 FROM groups WHERE id = ?').get(group.id); | 
		
	
		
			
				|  |  |  |  |          | 
		
	
		
			
				|  |  |  |  |         if (existing) { | 
		
	
		
			
				|  |  |  |  |           db.exec( | 
		
	
		
			
				|  |  |  |  |             'UPDATE groups SET name = ?, active = TRUE, last_verified = CURRENT_TIMESTAMP WHERE id = ?', | 
		
	
		
			
				|  |  |  |  |             [group.subject, group.id] | 
		
	
		
			
				|  |  |  |  |           ); | 
		
	
		
			
				|  |  |  |  |           updated++; | 
		
	
		
			
				|  |  |  |  |         } else { | 
		
	
		
			
				|  |  |  |  |           db.exec( | 
		
	
		
			
				|  |  |  |  |             'INSERT INTO groups (id, community_id, name, active) VALUES (?, ?, ?, TRUE)', | 
		
	
		
			
				|  |  |  |  |             [group.id, env.WHATSAPP_COMMUNITY_ID, group.subject] | 
		
	
		
			
				|  |  |  |  |           ); | 
		
	
		
			
				|  |  |  |  |           added++; | 
		
	
		
			
				|  |  |  |  |         for (const group of groups) { | 
		
	
		
			
				|  |  |  |  |           const existing = db.query('SELECT 1 FROM groups WHERE id = ?').get(group.id); | 
		
	
		
			
				|  |  |  |  |           console.log('Checking group:', group.id, 'exists:', !!existing); | 
		
	
		
			
				|  |  |  |  |            | 
		
	
		
			
				|  |  |  |  |           if (existing) { | 
		
	
		
			
				|  |  |  |  |             const updateResult = db.exec( | 
		
	
		
			
				|  |  |  |  |               'UPDATE groups SET name = ?, active = TRUE, last_verified = CURRENT_TIMESTAMP WHERE id = ?', | 
		
	
		
			
				|  |  |  |  |               [group.subject, group.id] | 
		
	
		
			
				|  |  |  |  |             ); | 
		
	
		
			
				|  |  |  |  |             console.log('Updated group:', group.id, 'result:', updateResult); | 
		
	
		
			
				|  |  |  |  |             updated++; | 
		
	
		
			
				|  |  |  |  |           } else { | 
		
	
		
			
				|  |  |  |  |             const insertResult = db.exec( | 
		
	
		
			
				|  |  |  |  |               'INSERT INTO groups (id, community_id, name, active) VALUES (?, ?, ?, TRUE)', | 
		
	
		
			
				|  |  |  |  |               [group.id, env.WHATSAPP_COMMUNITY_ID, group.subject] | 
		
	
		
			
				|  |  |  |  |             ); | 
		
	
		
			
				|  |  |  |  |             console.log('Added group:', group.id, 'result:', insertResult); | 
		
	
		
			
				|  |  |  |  |             added++; | 
		
	
		
			
				|  |  |  |  |           } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |       } | 
		
	
		
			
				|  |  |  |  |     }); | 
		
	
		
			
				|  |  |  |  |       }); | 
		
	
		
			
				|  |  |  |  |     } catch (error) { | 
		
	
		
			
				|  |  |  |  |       console.error('Error in upsertGroups:', error); | 
		
	
		
			
				|  |  |  |  |       throw error; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     console.log(`Group sync completed: ${added} added, ${updated} updated`); | 
		
	
		
			
				|  |  |  |  |     return { added, updated }; | 
		
	
	
		
			
				
					|  |  |  | 
 |