/** * Settings Routes – key/value application settings */ import type { FastifyInstance } from 'fastify'; import type { DatabaseInterface } from '../database/DatabaseInterface.js'; export function registerSettingsRoutes(fastify: FastifyInstance, db: DatabaseInterface) { // Get a single setting by key fastify.get('/api/settings/:key', async (request, reply) => { const { key } = request.params as { key: string }; const setting = db.getSetting(key); if (!setting) return reply.code(404).send({ error: 'Setting not found' }); return setting; }); // Create or update a setting (upsert) fastify.put('/api/settings/:key', async (request) => { const { key } = request.params as { key: string }; const body = request.body as { value?: string }; if (body.value === undefined) { return { error: 'Value is required' }; } db.setSetting(key, body.value); return { key, value: body.value, updated_at: new Date().toISOString() }; }); }