import { eq, desc, count } from "drizzle-orm"; import { db } from "../drizzle/db"; import { urls, visits } from "../drizzle/schema"; export function getAllUrls() { return db.query.urls.findMany({ orderBy: desc(urls.createdAt), with: { visits: true } }) } export function getUrlBySlug(slug: string) { return db.query.urls.findFirst({ where: eq(urls.slug, slug) }) } export function getVisitsBySlugById(id: string) { return db.select({ count: count() }).from(visits).where(eq(visits.urlId, id)) } export function insertUrl(data: typeof urls.$inferInsert) { return db.insert(urls).values(data) } export function updateUrl(id: string, data: Omit, "id">) { return db.update(urls).set(data).where(eq(urls.id, id)) } export function deleteUrl(id: string) { return db.delete(urls).where(eq(urls.id, id)) } export function trackVisit(data: typeof visits.$inferInsert) { return db.insert(visits).values(data) }