/ debug-outreach.mjs
debug-outreach.mjs
1 import { createInMemoryDb, getTestDbPath } from './src/utils/test-db.js'; 2 3 const dbName = 'outreach-unit-test-debug'; 4 process.env.DATABASE_PATH = getTestDbPath(dbName); 5 6 const setupDb = createInMemoryDb(dbName); 7 8 const site = setupDb 9 .prepare( 10 `INSERT INTO sites (domain, landing_page_url, keyword, status, score, country_code) VALUES (?, ?, ?, ?, ?, 'US')` 11 ) 12 .run('test.com', 'https://test.com', 'test keyword', 'proposals_drafted', 75); 13 14 setupDb 15 .prepare( 16 `INSERT INTO messages (site_id, contact_method, contact_uri, message_body, approval_status) VALUES (?, ?, ?, ?, ?)` 17 ) 18 .run(site.lastInsertRowid, 'sms', '+1234567890', 'Test SMS Reply STOP to opt out', 'approved'); 19 20 const allMsgs = setupDb.prepare('SELECT * FROM messages').all(); 21 console.log('Messages:', JSON.stringify(allMsgs)); 22 23 const rows = setupDb 24 .prepare( 25 ` 26 SELECT o.id, o.site_id, o.contact_method, o.direction, o.approval_status, o.delivery_status, o.message_type, s.country_code, s.last_outreach_at 27 FROM messages o 28 JOIN sites s ON o.site_id = s.id 29 WHERE o.direction = 'outbound' 30 AND o.approval_status = 'approved' 31 AND o.delivery_status IS NULL 32 AND o.contact_method IS NOT NULL 33 AND o.contact_uri IS NOT NULL 34 AND s.country_code IN ('AU','US','NZ','GB','UK') 35 AND (s.last_outreach_at IS NULL OR s.last_outreach_at < datetime('now', '-3 days')) 36 ` 37 ) 38 .all(); 39 40 console.log('Query result:', JSON.stringify(rows));