import { sql } from 'drizzle-orm'; import * as t from 'drizzle-orm/pg-core'; import { pgEnum, pgTable as table } from 'drizzle-orm/pg-core'; export const rolesEnum = pgEnum('roles', ['admin', 'guest', 'pro']); export const deck = table( 'deck', { id: t.integer('id').primaryKey().generatedAlwaysAsIdentity(), deckname: t.varchar('deckname').notNull(), bildname: t.varchar('bildname'), bildid: t.varchar('bildid'), x1: t.real('x1'), x2: t.real('x2'), y1: t.real('y1'), y2: t.real('y2'), due: t.integer('due'), ivl: t.real('ivl'), factor: t.real('factor'), reps: t.integer('reps'), lapses: t.integer('lapses'), isGraduated: t.integer('isgraduated'), user: t.varchar('user').notNull(), inserted: t.varchar().default(sql`(CURRENT_TIMESTAMP)`), // Neue Spalte updated: t.varchar().default(sql`(CURRENT_TIMESTAMP)`), // Neue Spalte }, table => [t.uniqueIndex('deck_idx').on(table.id)], ); export const users = table( 'users', { id: t.integer().primaryKey().generatedAlwaysAsIdentity(), name: t.varchar('name', { length: 256 }), email: t.varchar().notNull(), role: rolesEnum().default('guest'), sign_in_provider: t.varchar('sign_in_provider', { length: 50 }), }, table => [t.uniqueIndex('users_idx').on(table.id)], ); export type InsertDeck = typeof deck.$inferInsert; export type SelectDeck = typeof deck.$inferSelect; export interface User { name: string; picture: string; iss: string; aud: string; auth_time: number; user_id: string; sub: string; iat: number; exp: number; email: string; email_verified: boolean; firebase: { identities: any; sign_in_provider: string; }; uid: string; }