diff --git a/src/lib/db/schema.ts b/src/lib/db/schema.ts index d16b85f..d89cbc8 100644 --- a/src/lib/db/schema.ts +++ b/src/lib/db/schema.ts @@ -19,12 +19,16 @@ export const shortener = pgTable('shortener', { userId: integer('user_id').notNull(), }) -export const shortenerRelations = relations(shortener, ({ one }) => ({ - user: one(user, { - fields: [shortener.userId], - references: [user.id], +export const shortenerRelations = relations( + shortener, + ({ one, many }) => ({ + user: one(user, { + fields: [shortener.userId], + references: [user.id], + }), + visitor: many(visitor), }), -})) +) export const user = pgTable('user', { id: serial('id').primaryKey().notNull(), @@ -49,6 +53,13 @@ export const visitor = pgTable('visitor', { country: varchar('country', { length: 255 }).notNull(), }) +export const visitorRelations = relations(visitor, ({ one }) => ({ + shortener: one(shortener, { + fields: [visitor.shortenerId], + references: [shortener.id], + }), +})) + export const session = pgTable('session', { token: varchar('token', { length: 255 }).notNull(), userId: integer('user_id').notNull(), diff --git a/src/routes/(app)/links/+page.server.ts b/src/routes/(app)/links/+page.server.ts index 5e56cc2..8eec3ef 100644 --- a/src/routes/(app)/links/+page.server.ts +++ b/src/routes/(app)/links/+page.server.ts @@ -1,6 +1,4 @@ import { db } from '$lib/db' -import { shortener } from '$lib/db/schema' -import { eq } from 'drizzle-orm' import type { PageServerLoad } from './$types' import { redirect } from '@sveltejs/kit' @@ -11,10 +9,12 @@ export const load = (async (event) => { const userId = event.locals.user - const shorteners = await db - .select() - .from(shortener) - .where(eq(shortener.userId, userId)) + const shorteners = await db.query.shortener.findMany({ + with: { + visitor: true, + }, + where: (shortener, { eq }) => eq(shortener.userId, userId), + }) return { shorteners } }) satisfies PageServerLoad diff --git a/src/routes/(app)/links/+page.svelte b/src/routes/(app)/links/+page.svelte index 126df21..dacd418 100644 --- a/src/routes/(app)/links/+page.svelte +++ b/src/routes/(app)/links/+page.svelte @@ -8,6 +8,7 @@ import { Input } from '$lib/components/ui/input' import { Label } from '$lib/components/ui/label' import { + BarChart, Link2, Loader2, MoreVertical, @@ -86,7 +87,7 @@ {#if data.shorteners.length > 0}