- SourceUrl-Feld in api_keys: GitHub-URL bei adoptierten Scan-Keys gespeichert - HandleAdopt: Name = user/repo (aus URL extrahiert), SourceUrl = vollständige URL - Status-Schema vereinheitlicht: überall 'valid' statt 'ok'/'usage_limited' - AnthropicKeyChecker.ExtractMetaFromHeaders(): passive Header-Auswertung - AnthropicService: TryUpdateKeyMeta() nach jedem Chat-Request (fire-and-forget) - DatabaseService: UpdateApiKeyMetaByToken() für passive Updates per Token - Frontend: formatKeyStatus() zentrale Status-Labels für API-Keys + Scanned-Keys - Frontend: createUsageBadge() zweizeiliger Balken (Sitzung/Woche) mit Farbstufen - CSS: Usage-Badge mit Track/Fill, warn (>=70%) und danger (>=90%) Klassen
20 lines
938 B
C#
20 lines
938 B
C#
namespace Gott.Models;
|
|
|
|
public class ApiKeyRecord
|
|
{
|
|
public long Id { get; set; }
|
|
public string KeyId { get; set; }
|
|
public string Provider { get; set; } // anthropic, gemini, openai, ...
|
|
public string Name { get; set; } // Anzeigename z.B. "Tausi Pro Key"
|
|
public string ApiKey { get; set; } // Der eigentliche Key
|
|
public bool IsActive { get; set; } // Nur einer pro Provider aktiv
|
|
public string Status { get; set; } // ok, invalid, rate_limited, quota_exceeded, error
|
|
public string Plan { get; set; } // Pro, Max, Pro/Max, API Console, Unknown
|
|
public double? Usage7d { get; set; }
|
|
public double? Usage5h { get; set; }
|
|
public string CheckedAt { get; set; } // Wann zuletzt geprüft
|
|
public string SourceUrl { get; set; } // GitHub-URL (bei adoptierten Scan-Keys)
|
|
public string CreatedAt { get; set; }
|
|
public string UpdatedAt { get; set; }
|
|
}
|