| E2.S2 | Generate endpoint | `POST /api/behandelplan/generate` retourneert JSON, < 8 sec response | E2.S3 | AI event logging | Calls loggen naar `ai_events` tabel new file: app/api/behandelplan/generate/route.ts modified: docs/specs/behandelplan/bouwplan-behandelplan-v1.md modified: docs/templates/bouwplan_template.md new file: lib/ai/behandelplan-prompt.ts new file: lib/ai/intervention-mapping.ts modified: lib/supabase/database.types.ts
Supabase Configuration
Deze folder bevat de Supabase client configuratie voor het Mini-EPD project.
Bestanden
client.ts- Client-side Supabase client (browser-safe, gebruikt anon key)server.ts- Server-side Supabase client (admin, gebruikt service role key)types.ts- TypeScript types (auto-gegenereerd uit database schema)index.ts- Export file voor makkelijke imports
Gebruik
Client-side (React components)
import { supabase } from '@/lib/supabase'
// Voorbeeld: ophalen van clients
const { data, error } = await supabase
.from('clients')
.select('*')
Server-side (API routes, Server Components)
import { supabaseAdmin } from '@/lib/supabase/server'
// Voorbeeld: admin operatie
const { data, error } = await supabaseAdmin
.from('clients')
.insert({ ... })
TypeScript Types Genereren
Na het aanmaken van database schema (EP01), run:
pnpm run types:generate
Dit genereert TypeScript types uit je Supabase database schema.
Environment Variables
Zorg dat deze variabelen in .env.local staan:
NEXT_PUBLIC_SUPABASE_URL=https://dqugbrpwtisgyxscpefg.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=...
SUPABASE_SERVICE_ROLE_KEY=...
Security
⚠️ Belangrijk:
NEXT_PUBLIC_*variabelen zijn zichtbaar in de browserSUPABASE_SERVICE_ROLE_KEYmoet NOOIT naar de client worden gestuurd- Gebruik
supabase(client) voor frontend operaties - Gebruik
supabaseAdmin(server) alleen in API routes en Server Components
Volgende Stappen
- ✅ EP00-ST03: Supabase configuratie (Done)
- ⏳ EP01-ST01: Database schema aanmaken
- ⏳ EP01-ST02: Row Level Security policies
- ⏳ EP02-ST01: Authentication implementeren