import { serve } from '@hono/node-server' import { Hono } from 'hono' import { PrismaClient } from '@prisma/client' const app = new Hono() const prisma = new PrismaClient() app.get('/', (c) => { return c.html(` BookMe - Roggio API

BookMe API (RoggioApp MVP)

Willkommen an der API-Schnittstelle. Test-Endpunkte:

`) }) app.get('/api/apartments', async (c) => { const units = await prisma.unit.findMany({ include: { children: { include: { children: true } } } }) const apartments = units.filter(u => { const traits = u.traits as any return traits && traits.is_rentable === true }).map(apartment => { let totalArea = 0; let totalSleepCapacity = 0; apartment.children.forEach(room => { const rTraits = room.traits as any; if (rTraits?.area_sqm) totalArea += rTraits.area_sqm; room.children.forEach(inv => { const iTraits = inv.traits as any; if (iTraits?.sleep_capacity) totalSleepCapacity += iTraits.sleep_capacity; }); }); return { id: apartment.id, name: apartment.name, base_price: (apartment.traits as any).base_price, calculated_stats: { area_sqm: totalArea, sleep_capacity: totalSleepCapacity }, rooms: apartment.children.map(r => r.name) } }) return c.json(apartments) }) const port = 3000 console.log(`Server is running on port ${port}`) serve({ fetch: app.fetch, port, hostname: '0.0.0.0' })