diff --git a/src/features/grid/components/floating-summary-bar.tsx b/src/features/grid/components/floating-summary-bar.tsx index 58b9469..26f9e6a 100644 --- a/src/features/grid/components/floating-summary-bar.tsx +++ b/src/features/grid/components/floating-summary-bar.tsx @@ -81,7 +81,10 @@ export function FloatingSummaryBar() { } } catch (err) { console.error(err); - if (!labelOverride) alert("Erreur lors de la création du snapshot."); + if (!labelOverride) { + const msg = err instanceof Error ? err.message : String(err); + alert(`Erreur lors de la création du snapshot : ${msg}`); + } } finally { setIsSavingSnapshot(false); } diff --git a/src/features/snapshots/api/save-snapshot.ts b/src/features/snapshots/api/save-snapshot.ts index 56931d1..1b9f4d3 100644 --- a/src/features/snapshots/api/save-snapshot.ts +++ b/src/features/snapshots/api/save-snapshot.ts @@ -24,22 +24,28 @@ const SaveSnapshotSchema = z.object({ export async function saveSnapshot(raw: unknown) { const parsed = SaveSnapshotSchema.safeParse(raw); if (!parsed.success) { - return { success: false, error: "Validation failed: " + parsed.error.message }; + console.error("Snapshot validation failed:", parsed.error.format()); + return { success: false, error: "Validation failed: " + parsed.error.issues.map((i: any) => i.message).join(", ") }; } const { codeFournisseur, nomFournisseur, magasin, label, changes, summary } = parsed.data; - const [created] = await db - .insert(sessionSnapshots) - .values({ - codeFournisseur, - nomFournisseur: nomFournisseur ?? null, - magasin, - label: label ?? `Snapshot — ${new Date().toLocaleDateString("fr-FR")}`, - changes, - summaryJson: summary ?? null, - }) - .returning({ id: sessionSnapshots.id }); + try { + const [created] = await db + .insert(sessionSnapshots) + .values({ + codeFournisseur, + nomFournisseur: nomFournisseur ?? null, + magasin, + label: label ?? `Snapshot — ${new Date().toLocaleDateString("fr-FR")}`, + changes, + summaryJson: summary ?? null, + }) + .returning({ id: sessionSnapshots.id }); - return { success: true, snapshotId: created?.id }; + return { success: true, snapshotId: created?.id }; + } catch (err) { + console.error("Snapshot DB insertion error:", err); + return { success: false, error: "Database error during insertion" }; + } }