"use strict"; /** * Seed crawl: trigger dutchie crawls for all dispensaries with menu_type='dutchie' * and a resolved platform_dispensary_id. This uses the AZ orchestrator endpoint logic. * * Usage (local): * node dist/scripts/crawl-all-dutchie.js * * Requires: * - DATABASE_URL/CRAWLSY_DATABASE_URL pointing to the consolidated DB * - Dispensaries table populated with menu_type and platform_dispensary_id */ Object.defineProperty(exports, "__esModule", { value: true }); const connection_1 = require("../dutchie-az/db/connection"); const dispensary_orchestrator_1 = require("../services/dispensary-orchestrator"); async function main() { const { rows } = await (0, connection_1.query)(` SELECT id, name, slug, platform_dispensary_id FROM dispensaries WHERE menu_type = 'dutchie' AND platform_dispensary_id IS NOT NULL ORDER BY id `); if (!rows.length) { console.log('No dutchie dispensaries with resolved platform_dispensary_id found.'); process.exit(0); } console.log(`Found ${rows.length} dutchie dispensaries with resolved IDs. Triggering crawls...`); let success = 0; let failed = 0; for (const row of rows) { try { console.log(`Crawling ${row.id} (${row.name})...`); const result = await (0, dispensary_orchestrator_1.runDispensaryOrchestrator)(row.id); const ok = result.status === 'success' || result.status === 'sandbox_only' || result.status === 'detection_only'; if (ok) { success++; } else { failed++; console.warn(`Crawl returned status ${result.status} for ${row.id} (${row.name})`); } } catch (err) { failed++; console.error(`Failed crawl for ${row.id} (${row.name}): ${err.message}`); } } console.log(`Completed. Success: ${success}, Failed: ${failed}`); } main().catch((err) => { console.error('Fatal:', err); process.exit(1); });