#!/usr/bin/env node require('dotenv').config(); const database = require('../src/config/database'); const cloudDb = require('../src/config/cloudDatabase'); const redis = require('../src/config/redis'); const { queryLogisticsPickupBoard, writeLogisticsPickupBoardSnapshot, } = require('../src/services/logisticsPickupBoard'); async function main() { const [startDate, endDate = startDate] = process.argv.slice(2); if (!startDate || !endDate) { throw new Error('Usage: node backend/scripts/buildLogisticsPickupBoardSnapshot.js [YYYY-MM-DD]'); } const started = Date.now(); console.log(`[pickup-board-snapshot] range ${startDate} -> ${endDate}`); try { const data = await queryLogisticsPickupBoard({ startDate, endDate, shops: '', warehouses: '', purchasers: '', suppliers: '', skuIds: '', }); const filePath = writeLogisticsPickupBoardSnapshot(startDate, endDate, data); console.log(`[pickup-board-snapshot] wrote ${filePath}`); console.log(`[pickup-board-snapshot] elapsed=${Date.now() - started}ms`); } finally { await Promise.allSettled([ redis.close(), cloudDb.close(), database.close(), ]); } } main().catch((error) => { console.error('[pickup-board-snapshot] failed'); console.error(error); process.exit(1); });