import { count, desc, eq } from "drizzle-orm" import { db } from "../drizzle/db" import { urls, visits } from "../drizzle/schema" export async function getDashboardStats() { try { const [urlsCount] = await db.select({ count: count() }).from(urls) const [visitsCount] = await db.select({ count: count() }).from(visits) const mostVisitedUrl = await db .select({ id: urls.id, title: urls.title, slug: urls.slug, visitCount: count(visits.id) }) .from(urls) .leftJoin(visits, eq(urls.id, visits.urlId)) .groupBy(urls.id, urls.title, urls.slug) .orderBy(desc(count(visits.id))) .limit(1) return { totalUrls: urlsCount.count, totalVisits: visitsCount.count, mostVisitedUrl: mostVisitedUrl[0] || null } } catch (error) { console.error("Failed to fetch dashboard stats:", error) return { totalUrls: 0, totalVisits: 0, mostVisitedUrl: null } } }