Updated db and formatting

This commit is contained in:
2025-06-25 23:10:22 +02:00
parent c6105a8806
commit a26d60ea85
5 changed files with 290 additions and 236 deletions

View File

@@ -1 +1,50 @@
export * from "./auth-schema"
export { account, session, user, verification } from "./auth-schema"
import { relations } from "drizzle-orm"
import { boolean, index, integer, pgTable, timestamp, uuid, varchar } from "drizzle-orm/pg-core"
const createdAt = timestamp("created_at", { withTimezone: true }).defaultNow()
const updatedAt = timestamp("updated_at", { withTimezone: true }).defaultNow().$onUpdate(() => new Date())
export const urls = pgTable("urls", {
id: uuid("id").primaryKey().notNull(),
url: varchar("url").notNull(),
slug: varchar("slug").notNull(),
title: varchar("title").notNull(),
maxVisits: integer("max_visits"),
expDate: timestamp("exp_date", { withTimezone: true }),
forwardQueryParams: boolean("forward_query_params").default(true),
crawlable: boolean("crawable").default(false),
createdAt,
updatedAt
}, (t) => {
return [
index("urls_slug_idx").on(t.slug),
index("urls_url_idx").on(t.url),
index("exp_date_idx").on(t.expDate)
]
})
export const visits = pgTable("visits", {
id: uuid("id").primaryKey().notNull(),
urlId: uuid("url_id").notNull().references(() => urls.id),
ipAdress: varchar("ip_address").notNull(),
userAgent: varchar("user_agent").notNull(),
createdAt,
updatedAt
}, (t) => {
return [
index("visits_url_id_idx").on(t.urlId)
]
})
export const urlsRelations = relations(urls, ({ many }) => ({
visits: many(visits)
}))
export const visitsRelations = relations(visits, ({ one }) => ({
url: one(urls, {
fields: [visits.urlId],
references: [urls.id]
})
}))