From ffb7b42466c7b734bc7879118ad32f1e51636b9b Mon Sep 17 00:00:00 2001 From: Dicken Date: Wed, 27 May 2026 19:02:06 +0200 Subject: [PATCH] Dateien nach "backend/src" hochladen --- backend/src/db.js | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/backend/src/db.js b/backend/src/db.js index c68656c..849c87c 100644 --- a/backend/src/db.js +++ b/backend/src/db.js @@ -177,4 +177,44 @@ if (!oiCols.includes('qty_in_arbeit')) db.exec("ALTER TABLE order_items ADD CO if (!oiCols.includes('qty_fertig')) db.exec("ALTER TABLE order_items ADD COLUMN qty_fertig INTEGER NOT NULL DEFAULT 0"); // Bestehende Einträge: alle Stücke auf Warteliste setzen falls noch keine Qtys gesetzt db.exec("UPDATE order_items SET qty_warteliste=stueckzahl WHERE qty_warteliste=0 AND qty_in_arbeit=0 AND qty_fertig=0"); + +// ── Nachrichten-Migrationen ─────────────────────────────────────────────────── +if (!db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='messages'").get()) { + db.exec(` + CREATE TABLE messages ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + sender_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, + recipient_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE, + encrypted_content TEXT NOT NULL, + iv TEXT NOT NULL, + created_at DATETIME DEFAULT CURRENT_TIMESTAMP, + deleted_by_sender INTEGER NOT NULL DEFAULT 0, + deleted_by_recipient INTEGER NOT NULL DEFAULT 0, + read_by_recipient INTEGER NOT NULL DEFAULT 0 + ) + `); +} +if (!db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='user_keys'").get()) { + db.exec(` + CREATE TABLE user_keys ( + user_id INTEGER PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE, + public_key TEXT NOT NULL, + updated_at DATETIME DEFAULT NULL + ) + `); +} +if (!db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='pushover_settings'").get()) { + db.exec(` + CREATE TABLE pushover_settings ( + user_id INTEGER PRIMARY KEY REFERENCES users(id) ON DELETE CASCADE, + user_key TEXT NOT NULL, + app_token TEXT NOT NULL + ) + `); +} +// Falls messages-Tabelle alt ist und read_by_recipient fehlt +const msgCols = db.prepare("PRAGMA table_info(messages)").all().map(r => r.name); +if (msgCols.length && !msgCols.includes('read_by_recipient')) + db.exec("ALTER TABLE messages ADD COLUMN read_by_recipient INTEGER NOT NULL DEFAULT 0"); + module.exports = db;