chore: update src/pages/admin/_metrics-disabled.txt

swadhinbiswas committed 8 months ago
b7f9879
1 parent 2f1c4d0
commit b7f9879
1 file changed
+23 -4
Showing 1 changed file+23-4
▼src/pages/admin/_metrics-disabled.txt
+23-4
1
1
---
2
2
import AdminLayout from "@/layouts/AdminLayout.astro";
3
3
import { getDatabase, schema } from "@/db";
4
-import { sql, desc } from "drizzle-orm";
4
+import { sql, desc, gte } from "drizzle-orm";
5
5
import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "@/components/ui/card";
6
6
import { Button } from "@/components/ui/button";
7
7
import {
23
23
}
24
24
25
25
const db = getDatabase();
26
+const thirtyDaysAgo = new Date();
27
+thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);
26
28
27
29
// Gather metrics
28
30
const [
33
35
totalCommits,
34
36
recentActivities,
35
37
reposByLanguage,
36
- userGrowth
38
+ recentUsers
37
39
] = await Promise.all([
38
40
db.select({ count: sql<number>`count(*)` }).from(schema.users).get(),
39
41
db.select({ count: sql<number>`count(*)` }).from(schema.repositories).get(),
53
55
.groupBy(schema.repositories.language)
54
56
.limit(10)
55
57
.all(),
56
- // User growth - simplified for build compatibility
57
- Promise.resolve([])
58
+ db.query.users.findMany({
59
+ where: gte(schema.users.createdAt, thirtyDaysAgo),
60
+ columns: { createdAt: true },
61
+ })
58
62
]);
59
63
64
+const userGrowthMap = new Map<string, number>();
65
+for (let i = 0; i < 30; i++) {
66
+ const d = new Date();
67
+ d.setDate(d.getDate() - i);
68
+ const key = d.toISOString().split("T")[0];
69
+ userGrowthMap.set(key, 0);
70
+}
71
+for (const u of recentUsers) {
72
+ const key = u.createdAt.toISOString().split("T")[0];
73
+ userGrowthMap.set(key, (userGrowthMap.get(key) || 0) + 1);
74
+}
75
+const userGrowth = Array.from(userGrowthMap.entries())
76
+ .map(([date, count]) => ({ date, count }))
77
+ .sort((a, b) => a.date.localeCompare(b.date));
78
+
60
79
// Storage estimate (count repos * average size)
61
80
const storageKB = await db.select({ total: sql<number>`sum(size)` })
62
81
.from(schema.repositories)
63
82