Neue Mail-Templates (lib/mail.js): - sendDemoExpiryReminderMail: 7 Tage vor Ablauf - sendDemoLastDayMail: 1 Tag vor Ablauf (Letzter-Tag-Reminder) - sendDemoExpiredMail: am Ablauftag (setzt Tenant-Status abgelaufen) Cron-Job (lib/expiryJob.js): - node-cron taeglich 08:00 UTC (anpassbar via CRON_EXPIRY_AT) - 3 Windows pruefen, idempotent ueber notified_*_at Timestamp-Spalten - BETWEEN-Fenster [n-1, n] Tage fuer Robustheit DB-Migration (bootstrap.js): - Beim Backend-Start automatisches ALTER TABLE fuer notified_7d_at, notified_1d_at, notified_expired_at (idempotent) Manueller Test: docker exec pfandsystem-demo-backend node -e " import(\"./lib/expiryJob.js\").then(m => m.runExpiryCheck())"
27 lines
617 B
JSON
27 lines
617 B
JSON
{
|
|
"name": "pfandsystem-backend",
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"description": "Backend API f\u00fcr Pfandsystem mit MySQL",
|
|
"main": "server.js",
|
|
"scripts": {
|
|
"start": "node server.js",
|
|
"dev": "nodemon server.js"
|
|
},
|
|
"dependencies": {
|
|
"express": "^4.18.2",
|
|
"mysql2": "^3.6.5",
|
|
"bcrypt": "^5.1.1",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.3.1",
|
|
"multer": "^1.4.5-lts.1",
|
|
"nodemailer": "^6.9.16",
|
|
"resend": "^3.0.0",
|
|
"express-validator": "^7.0.1",
|
|
"node-cron": "^3.0.3"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.0.2"
|
|
}
|
|
} |