/** * API Route: Get batch details * GET /api/vertical-farm/batch/[batchId] */ import type { NextApiRequest, NextApiResponse } from 'next'; import { getVerticalFarmController } from '../../../../../lib/vertical-farming/controller'; export default async function handler( req: NextApiRequest, res: NextApiResponse ) { if (req.method !== 'GET') { return res.status(405).json({ success: false, error: 'Method not allowed' }); } try { const { batchId } = req.query; if (!batchId || typeof batchId !== 'string') { return res.status(400).json({ success: false, error: 'Batch ID is required' }); } const controller = getVerticalFarmController(); // Access internal state to find the batch const state = controller.toJSON() as any; const batches = state.batches as [string, any][]; const batchEntry = batches.find(([id]) => id === batchId); if (!batchEntry) { return res.status(404).json({ success: false, error: `Batch not found: ${batchId}` }); } // Update batch progress const batch = controller.updateBatchProgress(batchId); res.status(200).json({ success: true, data: batch }); } catch (error: any) { console.error('Error fetching batch:', error); res.status(500).json({ success: false, error: error.message || 'Internal server error' }); } }