From 8196a1a3f99f4f0477f639331c603b487e6f8843 Mon Sep 17 00:00:00 2001 From: Claude Integration Date: Sun, 31 May 2026 11:48:14 +0000 Subject: [PATCH] =?UTF-8?q?chore(admin):=20adapter=20findUnique/update=20?= =?UTF-8?q?=C3=A0=20la=20PK=20composite=20(slug,=20lang)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Admin édite la version FR par défaut. Édition multi-langues = future feature. --- src/app/admin/content-pages/[slug]/page.tsx | 5 ++++- src/app/api/admin/content-pages/[slug]/route.ts | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/app/admin/content-pages/[slug]/page.tsx b/src/app/admin/content-pages/[slug]/page.tsx index 00b7fe0..d9e6b25 100644 --- a/src/app/admin/content-pages/[slug]/page.tsx +++ b/src/app/admin/content-pages/[slug]/page.tsx @@ -14,7 +14,10 @@ export default async function EditContentPage({ params }: PageProps) { await requireRole([UserRole.ADMIN]); const { slug } = await params; // Pas getContentPage : il filtre published=true. Ici on veut tout voir. - const row = await prisma.contentPage.findUnique({ where: { slug } }); + // Admin édite la version FR par défaut. (Édition EN = future feature.) + const row = await prisma.contentPage.findUnique({ + where: { slug_lang: { slug, lang: "fr" } }, + }); if (!row) notFound(); // Re-construction du type minimal attendu par le formulaire. const page = { diff --git a/src/app/api/admin/content-pages/[slug]/route.ts b/src/app/api/admin/content-pages/[slug]/route.ts index fc0047e..c2db7dd 100644 --- a/src/app/api/admin/content-pages/[slug]/route.ts +++ b/src/app/api/admin/content-pages/[slug]/route.ts @@ -19,10 +19,13 @@ export async function PATCH(req: Request, ctx: { params: Promise<{ slug: string if (!parsed.success) { return NextResponse.json({ error: "Invalid payload" }, { status: 400 }); } - const existing = await prisma.contentPage.findUnique({ where: { slug } }); + // L'admin édite la version FR par défaut (édition multi-langues à venir). + const existing = await prisma.contentPage.findUnique({ + where: { slug_lang: { slug, lang: "fr" } }, + }); if (!existing) return NextResponse.json({ error: "Not found" }, { status: 404 }); const updated = await prisma.contentPage.update({ - where: { slug }, + where: { slug_lang: { slug, lang: "fr" } }, data: { ...(parsed.data.title !== undefined ? { title: parsed.data.title } : {}), ...(parsed.data.body !== undefined ? { body: parsed.data.body } : {}),