feat: Add floating summary bar with draft management, snapshot, and Excel export functionalities.

This commit is contained in:
Michael committed 2026-02-22 13:31:38 +01:00
1 parent c9cf83d4c7
commit 77fb61ef79
2 files changed
+23 -14

No files matched your search

+19 -13
View File
@@ -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" };
}
}