import { NextResponse } from "next/server"; import { auth } from "@/lib/auth"; import { prisma } from "@/lib/prisma"; export async function GET(req: Request) { const session = await auth(); if (!session?.user?.id) return NextResponse.json({ error: "Non autorisé" }, { status: 401 }); const { searchParams } = new URL(req.url); const babyId = searchParams.get("babyId"); if (!babyId) return NextResponse.json({ error: "babyId requis" }, { status: 400 }); const familyId = (session.user as { familyId?: string }).familyId; if (!familyId) return NextResponse.json({ error: "Non autorisé" }, { status: 401 }); const ownedBaby = await prisma.baby.findFirst({ where: { id: babyId, familyId } }); if (!ownedBaby) return NextResponse.json({ error: "Bébé introuvable" }, { status: 404 }); const teeth = await prisma.tooth.findMany({ where: { babyId }, orderBy: { appearedAt: "asc" }, }); return NextResponse.json(teeth); } export async function POST(req: Request) { const session = await auth(); if (!session?.user?.id) return NextResponse.json({ error: "Non autorisé" }, { status: 401 }); const body = await req.json(); const { babyId, code, appearedAt, notes } = body; if (!babyId || !code || !appearedAt) { return NextResponse.json({ error: "Champs requis manquants" }, { status: 400 }); } const postFamilyId = (session.user as { familyId?: string }).familyId; if (!postFamilyId) return NextResponse.json({ error: "Non autorisé" }, { status: 401 }); const postBaby = await prisma.baby.findFirst({ where: { id: babyId, familyId: postFamilyId } }); if (!postBaby) return NextResponse.json({ error: "Bébé introuvable" }, { status: 404 }); const tooth = await prisma.tooth.upsert({ where: { babyId_code: { babyId, code } }, update: { appearedAt: new Date(appearedAt), notes: notes ?? null, }, create: { babyId, code, appearedAt: new Date(appearedAt), notes: notes ?? null, }, }); return NextResponse.json(tooth, { status: 201 }); }