summaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/db')
-rw-r--r--src/db/schema.ts34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/db/schema.ts b/src/db/schema.ts
index 15da652..01b7228 100644
--- a/src/db/schema.ts
+++ b/src/db/schema.ts
@@ -1,5 +1,33 @@
-import { text, sqliteTable } from "drizzle-orm/sqlite-core";
+import { relations } from "drizzle-orm";
+import { text, sqliteTable, integer } from "drizzle-orm/sqlite-core";
-export const groupsTable = sqliteTable("groups", {
- name: text("name").notNull(),
+export const groupTable = sqliteTable("groups", {
+ id: integer().primaryKey(),
+ name: text().notNull(),
+});
+
+export const userTable = sqliteTable("users", {
+ id: integer().primaryKey(),
+ name: text().unique().notNull(),
+ passkey: text(),
+ passkeyId: text("passkey_id").notNull(),
+});
+
+export const sessionTable = sqliteTable("sessions", {
+ id: integer().primaryKey(),
+ uuid: text().unique().notNull(),
+ userId: integer("user_id").notNull(),
+});
+
+export const sessionRelations = relations(sessionTable, ({ one }) => ({
+ user: one(userTable, {
+ fields: [sessionTable.userId],
+ references: [userTable.id],
+ }),
+}));
+
+export const webauthnChallenges = sqliteTable("webauthn_challenges", {
+ id: integer().primaryKey(),
+ challenge: text().notNull(),
+ key: text().notNull(),
});