This commit is contained in:
2025-04-08 00:13:48 +02:00
parent 0ad70b3c7d
commit cdd9f01214
11 changed files with 345 additions and 34 deletions

1
src/server/db/query.ts Normal file
View File

@@ -0,0 +1 @@
import "server-only"

View File

@@ -1,7 +1,7 @@
// Example model schema from the Drizzle docs
// https://orm.drizzle.team/docs/sql-schema-declaration
import { sql } from "drizzle-orm";
import { relations, sql } from "drizzle-orm";
import { index, pgTableCreator } from "drizzle-orm/pg-core";
/**
@@ -12,16 +12,37 @@ import { index, pgTableCreator } from "drizzle-orm/pg-core";
*/
export const createTable = pgTableCreator((name) => `gregorlohaus.com_${name}`);
export const posts = createTable(
"post",
export const cvCategory = createTable(
"cv_category",
(d) => ({
id: d.integer().primaryKey().generatedByDefaultAsIdentity(),
name: d.varchar({ length: 256 }),
id: d.uuid().primaryKey(),
name: d.varchar({length: 50})
}),
(t) => [index("name_idx").on(t.name)],
)
export const cvCategoryRelations = relations(cvCategory,({many}) => ({
cvEntry: many(cvEntry)
}))
export const cvEntry = createTable(
"cv_entry",
(d) => ({
id: d.uuid().primaryKey().notNull(),
categoryId: d.uuid('category_id'),
fromTime: d.date().notNull(),
toTime: d.date().notNull(),
createdAt: d
.timestamp({ withTimezone: true })
.default(sql`CURRENT_TIMESTAMP`)
.notNull(),
updatedAt: d.timestamp({ withTimezone: true }).$onUpdate(() => new Date()),
})
)
export const cvEntryRelations = relations(cvEntry, ({one}) => ({
category: one(cvCategory, {
fields: [cvEntry.categoryId],
references: [cvCategory.id]
}),
(t) => [index("name_idx").on(t.name)],
);
}));