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 }); }