localgreenchain/pages/api/analytics/farms.ts
Claude 816c3b3f2e
Implement Agent 7: Advanced Analytics Dashboard
Add comprehensive analytics system with:
- Analytics data layer (aggregator, metrics, trends, cache)
- 6 API endpoints (overview, plants, transport, farms, sustainability, export)
- 6 chart components (LineChart, BarChart, PieChart, AreaChart, Gauge, Heatmap)
- 5 dashboard widgets (KPICard, TrendIndicator, DataTable, DateRangePicker, FilterPanel)
- 5 dashboard pages (overview, plants, transport, farms, sustainability)
- Export functionality (CSV, JSON)

Dependencies added: recharts, d3, date-fns

Also includes minor fixes:
- Fix EnvironmentalForm spread type error
- Fix AgentOrchestrator Map iteration issues
- Fix next.config.js image domains undefined error
- Add downlevelIteration to tsconfig
2025-11-23 04:02:07 +00:00

46 lines
1.1 KiB
TypeScript

/**
* Farm Analytics API
* Returns vertical farm analytics data
*/
import type { NextApiRequest, NextApiResponse } from 'next';
import { getFarmAnalytics, AnalyticsFilters, TimeRange } from '../../../lib/analytics';
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
if (req.method !== 'GET') {
return res.status(405).json({ error: 'Method not allowed' });
}
try {
const timeRange = (req.query.timeRange as TimeRange) || '30d';
const farmIds = req.query.farmIds
? (req.query.farmIds as string).split(',')
: undefined;
const filters: AnalyticsFilters = {
timeRange,
farmIds,
};
const farmAnalytics = await getFarmAnalytics(filters);
res.status(200).json({
success: true,
data: farmAnalytics,
meta: {
timeRange,
filters: { farmIds },
generatedAt: new Date().toISOString(),
},
});
} catch (error) {
console.error('Farm analytics error:', error);
res.status(500).json({
success: false,
error: 'Failed to fetch farm analytics',
});
}
}