/** * Product Discovery Handler * * Per TASK_WORKFLOW_2024-12-10.md: Initial product fetch for newly discovered stores. * * Flow: * 1. Triggered after store_discovery promotes a new dispensary * 2. Chains to payload_fetch to get initial product data * 3. payload_fetch chains to product_refresh for DB upsert * * Chaining: * store_discovery → (newStoreIds) → product_discovery → payload_fetch → product_refresh */ import { TaskContext, TaskResult } from '../task-worker'; import { handlePayloadFetch } from './payload-fetch'; export async function handleProductDiscovery(ctx: TaskContext): Promise { const { task } = ctx; const dispensaryId = task.dispensary_id; if (!dispensaryId) { return { success: false, error: 'No dispensary_id provided' }; } console.log(`[ProductDiscovery] Starting initial product discovery for dispensary ${dispensaryId}`); // Per TASK_WORKFLOW_2024-12-10.md: Chain to payload_fetch for API → disk // payload_fetch will then chain to product_refresh for disk → DB return handlePayloadFetch(ctx); }