From c5db6d0dbd3716dcfc7231d2fa55717e2d3d1a96 Mon Sep 17 00:00:00 2001 From: Meleki Date: Fri, 13 Mar 2026 13:00:05 +0100 Subject: [PATCH] =?UTF-8?q?fix:=20ScannedKeyRecord.AdoptedApiKeyId=20als?= =?UTF-8?q?=20string=20(UUID),=20verwaiste=20Referenzen=20bei=20Key-L?= =?UTF-8?q?=C3=B6schung=20bereinigen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Models/ScannedKeyRecord.cs | 2 +- Services/DatabaseService.Integrations.cs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Models/ScannedKeyRecord.cs b/Models/ScannedKeyRecord.cs index 38eaafd..6929425 100644 --- a/Models/ScannedKeyRecord.cs +++ b/Models/ScannedKeyRecord.cs @@ -15,5 +15,5 @@ public class ScannedKeyRecord public string ScannedAt { get; set; } // Wann gefunden public string CheckedAt { get; set; } // Wann zuletzt geprüft public int Deleted { get; set; } // Soft-Delete (1 = gelöscht/ignoriert) - public long? AdoptedApiKeyId { get; set; } // Verknüpfung zur api_keys.id (null = nicht übernommen) + public string AdoptedApiKeyId { get; set; } // Verknüpfung zur api_keys.key_id (null = nicht übernommen) } diff --git a/Services/DatabaseService.Integrations.cs b/Services/DatabaseService.Integrations.cs index 83a82dd..47f2344 100644 --- a/Services/DatabaseService.Integrations.cs +++ b/Services/DatabaseService.Integrations.cs @@ -423,6 +423,14 @@ public partial class DatabaseService public async Task DeleteApiKey(string keyId) { using var conn = CreateConnection(); + // Scanned-Keys die auf diesen API-Key verweisen zurücksetzen + await conn.ExecuteAsync( + "UPDATE scanned_keys SET adopted_api_key_id = NULL WHERE adopted_api_key_id = (SELECT id FROM api_keys WHERE key_id = @keyId)", + new { keyId }); + // User die diesen Key ausgewählt haben zurücksetzen + await conn.ExecuteAsync( + "UPDATE users SET selected_api_key_id = NULL WHERE selected_api_key_id = @keyId", + new { keyId }); await conn.ExecuteAsync("DELETE FROM api_keys WHERE key_id = @keyId", new { keyId }); }