import type { FastifyInstance } from 'fastify'; import { getEconomyConfig, setEconomyConfig, type EconomyConfig } from '../economy/config.js'; import { rankOpportunities, type RankRequest } from '../economy/service.js'; export async function economyRoutes(app: FastifyInstance): Promise { app.get('/api/economy/config', async () => getEconomyConfig()); app.put('/api/economy/config', async (req) => { await setEconomyConfig((req.body ?? {}) as Partial); return { ok: true, config: await getEconomyConfig() }; }); app.post('/api/economy/opportunities', async (req, reply) => { const body = (req.body ?? {}) as RankRequest; if (!body.city) return reply.code(400).send({ error: 'city is required' }); const started = Date.now(); const result = await rankOpportunities(body); return { ...result, tookMs: Date.now() - started }; }); }