diff --git a/src/services/apiKeyService.js b/src/services/apiKeyService.js index d1e4a426..15b257c4 100644 --- a/src/services/apiKeyService.js +++ b/src/services/apiKeyService.js @@ -498,6 +498,17 @@ class ApiKeyService { for (const key of userKeys) { const usage = await redis.getUsageStats(key.id) const dailyCost = (await redis.getDailyCost(key.id)) || 0 + const costStats = await redis.getCostStats(key.id) + + logger.debug(`🔍 getUserApiKeys: Key ${key.id} (${key.name}) usage:`, { + keyId: key.id, + keyName: key.name, + userId: key.userId, + rawUsage: usage, + dailyCost, + costStats, + lastUsedAt: key.lastUsedAt + }) userKeysWithUsage.push({ id: key.id, @@ -509,8 +520,9 @@ class ApiKeyService { createdAt: key.createdAt, lastUsedAt: key.lastUsedAt, expiresAt: key.expiresAt, - usage: usage || { requests: 0, inputTokens: 0, outputTokens: 0, totalCost: 0 }, + usage: usage, dailyCost, + totalCost: costStats.total, dailyCostLimit: parseFloat(key.dailyCostLimit || 0), userId: key.userId, userUsername: key.userUsername, diff --git a/src/services/userService.js b/src/services/userService.js index 4963a53d..fd971d72 100644 --- a/src/services/userService.js +++ b/src/services/userService.js @@ -150,11 +150,15 @@ class UserService { } for (const apiKey of userApiKeys) { - if (apiKey.usage) { - totalUsage.requests += apiKey.usage.requests || 0 - totalUsage.inputTokens += apiKey.usage.inputTokens || 0 - totalUsage.outputTokens += apiKey.usage.outputTokens || 0 - totalUsage.totalCost += apiKey.usage.totalCost || 0 + logger.debug(`🔍 Processing API key ${apiKey.id} (${apiKey.name}) for user ${userId}:`, { + hasUsage: !!apiKey.usage, + usage: apiKey.usage + }) + if (apiKey.usage && apiKey.usage.total) { + totalUsage.requests += apiKey.usage.total.requests || 0 + totalUsage.inputTokens += apiKey.usage.total.inputTokens || 0 + totalUsage.outputTokens += apiKey.usage.total.outputTokens || 0 + totalUsage.totalCost += apiKey.totalCost || 0 } }