import db from './src/lib/db.js'; console.log('Testing contacts query...\n'); try { // Test 1: Basic query console.log('Test 1: Basic contact query'); const basic = db.prepare('SELECT contact_id, name FROM contacts WHERE is_active = 1 LIMIT 3').all(); console.log('✓ Basic query works:', basic.length, 'contacts\n'); // Test 2: With LEFT JOIN console.log('Test 2: With project_contacts join'); const withJoin = db.prepare(` SELECT c.contact_id, c.name, COUNT(pc.project_id) as count FROM contacts c LEFT JOIN project_contacts pc ON c.contact_id = pc.contact_id WHERE c.is_active = 1 GROUP BY c.contact_id LIMIT 3 `).all(); console.log('✓ Join query works:', withJoin.length, 'contacts\n'); // Test 3: With both joins console.log('Test 3: With both joins (no CASE)'); const bothJoins = db.prepare(` SELECT c.contact_id, c.name, COUNT(p.project_id) as count FROM contacts c LEFT JOIN project_contacts pc ON c.contact_id = pc.contact_id LEFT JOIN projects p ON pc.project_id = p.project_id WHERE c.is_active = 1 GROUP BY c.contact_id LIMIT 3 `).all(); console.log('✓ Both joins work:', bothJoins.length, 'contacts\n'); // Test 4: With CASE statement console.log('Test 4: With CASE statement'); const withCase = db.prepare(` SELECT c.contact_id, c.name, COUNT(DISTINCT CASE WHEN p.is_deleted = 0 THEN p.project_id ELSE NULL END) as count FROM contacts c LEFT JOIN project_contacts pc ON c.contact_id = pc.contact_id LEFT JOIN projects p ON pc.project_id = p.project_id WHERE c.is_active = 1 GROUP BY c.contact_id LIMIT 3 `).all(); console.log('✓ CASE query works:', withCase.length, 'contacts'); withCase.forEach(c => console.log(` ${c.name}: ${c.count} active projects`)); } catch (error) { console.error('❌ Query failed:', error.message); console.error(error.stack); }