diff --git a/src/app/backend/actions.ts b/src/app/backend/actions.ts
index ad7425e..9bc87e0 100644
--- a/src/app/backend/actions.ts
+++ b/src/app/backend/actions.ts
@@ -129,7 +129,13 @@ export async function deleteMember(formData: FormData) {
if (!can(role, "manageMembers")) throw new Error("Accès refusé");
const id = Number(formData.get("id"));
if (!id) return;
- await db.delete(members).where(eq(members.id, id));
+ // Remove dependent rows first to satisfy foreign-key constraints:
+ // delete the member's promotions and detach any linked user account.
+ await db.transaction(async (tx) => {
+ await tx.delete(promotions).where(eq(promotions.memberId, id));
+ await tx.update(users).set({ memberId: null }).where(eq(users.memberId, id));
+ await tx.delete(members).where(eq(members.id, id));
+ });
revalidatePath("/backend/adherents");
revalidatePath("/");
}
diff --git a/src/app/layout.tsx b/src/app/layout.tsx
index a8dfc89..bfdca94 100644
--- a/src/app/layout.tsx
+++ b/src/app/layout.tsx
@@ -25,7 +25,7 @@ export default function RootLayout({
href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,700;12..96,800&family=Public+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap"
rel="stylesheet"
/>
-
+
{children}