This commit is contained in:
2025-06-06 03:12:19 +02:00
parent be9a9af137
commit 0aab9f55d7
49 changed files with 3255 additions and 93 deletions

View File

@@ -2,7 +2,7 @@
// https://orm.drizzle.team/docs/sql-schema-declaration
import { relations, sql } from "drizzle-orm";
import { index, pgTableCreator } from "drizzle-orm/pg-core";
import { index, pgEnum, pgTableCreator } from "drizzle-orm/pg-core";
/**
* This is an example of how to use the multi-project schema feature of Drizzle ORM. Use the same
@@ -12,11 +12,14 @@ import { index, pgTableCreator } from "drizzle-orm/pg-core";
*/
export const createTable = pgTableCreator((name) => `gregorlohaus.com_${name}`);
export const layoutPositionEnum = pgEnum('layout_position',['sidebar','header','col1','col2'])
export const cvCategory = createTable(
"cv_category",
(d) => ({
id: d.uuid().primaryKey(),
name: d.varchar({length: 50})
name: d.varchar({length: 50}),
layoutPosition: layoutPositionEnum()
}),
(t) => [index("name_idx").on(t.name)],
)
@@ -32,6 +35,8 @@ export const cvEntry = createTable(
categoryId: d.uuid('category_id'),
fromTime: d.date().notNull(),
toTime: d.date().notNull(),
title: d.varchar({length:50}).notNull(),
description: d.text(),
createdAt: d
.timestamp({ withTimezone: true })
.default(sql`CURRENT_TIMESTAMP`)
@@ -46,3 +51,24 @@ export const cvEntryRelations = relations(cvEntry, ({one}) => ({
references: [cvCategory.id]
}),
}));
export const sourceTypeEnum = pgEnum('source_type',['open','closed'])
export const stackItemEnum = pgEnum('stack_item',['drizzle','postgres','nextjs','react','servercomponents','php','laravel','reactnative','expo','mysql','nginx','protobuf','grpc'])
export const project = createTable(
"project",
(d) => ({
id: d.uuid().primaryKey().notNull(),
title: d.varchar({length: 50}).notNull(),
sourceType: sourceTypeEnum(),
})
)
export const techStack = createTable(
"tech_stack",
(d) => ({
id: d.uuid().primaryKey().notNull(),
stackItems: stackItemEnum().array()
})
)