generated from Dicken/dickendock
round59: Serverseitige, geraeteuebergreifende Bestaetigung von Scan-Vorschlaegen statt nur lokalem sessionStorage
This commit is contained in:
@@ -128,6 +128,13 @@ export function ensureSchema(): void {
|
||||
status INTEGER NOT NULL,
|
||||
detected_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS scan_dismissals (
|
||||
id TEXT PRIMARY KEY,
|
||||
kind TEXT NOT NULL,
|
||||
dedupe_key TEXT NOT NULL,
|
||||
dismissed_at TEXT NOT NULL
|
||||
);
|
||||
`);
|
||||
|
||||
// Leichte Migration für Datenbanken, die vor Einführung von "visible"/
|
||||
@@ -159,6 +166,15 @@ export function ensureSchema(): void {
|
||||
sqlite.exec(
|
||||
`CREATE UNIQUE INDEX IF NOT EXISTS idx_services_device_port ON services(device_id, port)`
|
||||
);
|
||||
|
||||
// Verhindert doppelte Einträge für denselben Vorschlag (z. B. wenn zwei
|
||||
// Browser fast gleichzeitig denselben neuen Dienst bestätigen) - der
|
||||
// Dismiss-Endpunkt selbst nutzt ohnehin "INSERT OR IGNORE" (siehe
|
||||
// db/repositories/scanDismissals.ts), dieser Index macht das zusätzlich
|
||||
// auf Datenbankebene verbindlich.
|
||||
sqlite.exec(
|
||||
`CREATE UNIQUE INDEX IF NOT EXISTS idx_scan_dismissals_kind_key ON scan_dismissals(kind, dedupe_key)`
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user