Update data management to use in-memory storage

Modify the application to use an in-memory storage solution, replacing the PostgreSQL database connection and data purging logic. This change impacts session management and data operations, introducing a fallback mechanism for when the database is unavailable.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: a388004f-01c5-42b1-b1d1-f18daf8bdd0c
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/a388004f-01c5-42b1-b1d1-f18daf8bdd0c/ekgWmFH
This commit is contained in:
michaelschal committed 2025-08-06 11:15:15 +00:00
1 parent 430ab669aa
commit 40c7975bbc
5 files changed
+323 -45

No files matched your search

+10 -27
View File
@@ -1,6 +1,4 @@
import { db } from './db';
import { sales } from '@shared/schema';
import { lt } from 'drizzle-orm';
import { storage } from './storage';
import cron from 'node-cron';
/**
@@ -15,13 +13,9 @@ export async function purgeSalesData() {
console.log(`🗑️ Démarrage purge des ventes antérieures au ${cutoffDate.toLocaleDateString('fr-FR')}`);
// Supprimer les ventes antérieures à la date limite
const result = await db
.delete(sales)
.where(lt(sales.timestamp, cutoffDate))
.returning({ id: sales.id });
const deletedCount = result.length;
// Use storage's purge method
const result = await (storage as any).purgeOldSales();
const deletedCount = result.deletedCount;
if (deletedCount > 0) {
console.log(`✅ Purge terminée : ${deletedCount} vente(s) supprimée(s)`);
@@ -51,25 +45,14 @@ export async function purgeSalesData() {
*/
export async function getPurgeStats() {
try {
const cutoffDate = new Date();
cutoffDate.setMonth(cutoffDate.getMonth() - 19);
// Compter les ventes qui seraient supprimées
const oldSales = await db
.select({ id: sales.id })
.from(sales)
.where(lt(sales.timestamp, cutoffDate));
// Compter le total des ventes
const totalSales = await db
.select({ id: sales.id })
.from(sales);
// Use storage's stats method
const stats = await (storage as any).getPurgeStats();
return {
totalSales: totalSales.length,
oldSales: oldSales.length,
cutoffDate: cutoffDate.toISOString(),
purgeEligible: oldSales.length > 0
totalSales: stats.totalSales,
oldSales: stats.oldSales,
cutoffDate: stats.cutoffDate,
purgeEligible: stats.oldSales > 0
};
} catch (error) {