From fb9945c0f7b70a42bd351e5e89c2989206d5035f Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Tue, 2 Dec 2025 14:40:02 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix(chat):=20update=20schema=20f?= =?UTF-8?q?or=20Better=20Auth=20nanoid=20user=20IDs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Change userId columns from uuid to text to support Better Auth's nanoid format - Update conversations, spaces, space_members, templates, usage_logs schemas - Fix web API endpoint path from /api to /api/v1 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../chat/apps/backend/src/db/schema/conversations.schema.ts | 2 +- apps/chat/apps/backend/src/db/schema/spaces.schema.ts | 6 +++--- apps/chat/apps/backend/src/db/schema/templates.schema.ts | 2 +- apps/chat/apps/backend/src/db/schema/usage-logs.schema.ts | 4 ++-- apps/chat/apps/web/src/lib/services/api.ts | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/chat/apps/backend/src/db/schema/conversations.schema.ts b/apps/chat/apps/backend/src/db/schema/conversations.schema.ts index 2221235df..e8774fa52 100644 --- a/apps/chat/apps/backend/src/db/schema/conversations.schema.ts +++ b/apps/chat/apps/backend/src/db/schema/conversations.schema.ts @@ -10,7 +10,7 @@ export const conversationModeEnum = pgEnum('conversation_mode', ['free', 'guided export const conversations = pgTable('conversations', { id: uuid('id').primaryKey().defaultRandom(), - userId: uuid('user_id').notNull(), + userId: text('user_id').notNull(), // TEXT to support Better Auth nanoid format modelId: uuid('model_id').references(() => models.id), templateId: uuid('template_id').references(() => templates.id), spaceId: uuid('space_id').references(() => spaces.id, { onDelete: 'set null' }), diff --git a/apps/chat/apps/backend/src/db/schema/spaces.schema.ts b/apps/chat/apps/backend/src/db/schema/spaces.schema.ts index 24d988c39..2d11dde86 100644 --- a/apps/chat/apps/backend/src/db/schema/spaces.schema.ts +++ b/apps/chat/apps/backend/src/db/schema/spaces.schema.ts @@ -10,7 +10,7 @@ export const invitationStatusEnum = pgEnum('invitation_status', [ export const spaces = pgTable('spaces', { id: uuid('id').primaryKey().defaultRandom(), - ownerId: uuid('owner_id').notNull(), + ownerId: text('owner_id').notNull(), // TEXT to support Better Auth nanoid format name: text('name').notNull(), description: text('description'), isArchived: boolean('is_archived').default(false).notNull(), @@ -23,10 +23,10 @@ export const spaceMembers = pgTable('space_members', { spaceId: uuid('space_id') .references(() => spaces.id, { onDelete: 'cascade' }) .notNull(), - userId: uuid('user_id').notNull(), + userId: text('user_id').notNull(), // TEXT to support Better Auth nanoid format role: memberRoleEnum('role').default('member').notNull(), invitationStatus: invitationStatusEnum('invitation_status').default('pending').notNull(), - invitedBy: uuid('invited_by'), + invitedBy: text('invited_by'), // TEXT to support Better Auth nanoid format invitedAt: timestamp('invited_at', { withTimezone: true }).defaultNow().notNull(), joinedAt: timestamp('joined_at', { withTimezone: true }), createdAt: timestamp('created_at', { withTimezone: true }).defaultNow().notNull(), diff --git a/apps/chat/apps/backend/src/db/schema/templates.schema.ts b/apps/chat/apps/backend/src/db/schema/templates.schema.ts index f1bbfd8a0..b9293ee02 100644 --- a/apps/chat/apps/backend/src/db/schema/templates.schema.ts +++ b/apps/chat/apps/backend/src/db/schema/templates.schema.ts @@ -4,7 +4,7 @@ import { models } from './models.schema'; export const templates = pgTable('templates', { id: uuid('id').primaryKey().defaultRandom(), - userId: uuid('user_id').notNull(), + userId: text('user_id').notNull(), // TEXT to support Better Auth nanoid format name: text('name').notNull(), description: text('description'), systemPrompt: text('system_prompt').notNull(), diff --git a/apps/chat/apps/backend/src/db/schema/usage-logs.schema.ts b/apps/chat/apps/backend/src/db/schema/usage-logs.schema.ts index 2deec1570..3a98ee592 100644 --- a/apps/chat/apps/backend/src/db/schema/usage-logs.schema.ts +++ b/apps/chat/apps/backend/src/db/schema/usage-logs.schema.ts @@ -1,4 +1,4 @@ -import { pgTable, uuid, timestamp, integer, numeric } from 'drizzle-orm/pg-core'; +import { pgTable, uuid, text, timestamp, integer, numeric } from 'drizzle-orm/pg-core'; import { relations } from 'drizzle-orm'; import { conversations } from './conversations.schema'; import { messages } from './messages.schema'; @@ -12,7 +12,7 @@ export const usageLogs = pgTable('usage_logs', { messageId: uuid('message_id') .references(() => messages.id, { onDelete: 'cascade' }) .notNull(), - userId: uuid('user_id').notNull(), + userId: text('user_id').notNull(), // TEXT to support Better Auth nanoid format modelId: uuid('model_id').references(() => models.id), promptTokens: integer('prompt_tokens').default(0).notNull(), completionTokens: integer('completion_tokens').default(0).notNull(), diff --git a/apps/chat/apps/web/src/lib/services/api.ts b/apps/chat/apps/web/src/lib/services/api.ts index f6bddcb35..9df7c5ef2 100644 --- a/apps/chat/apps/web/src/lib/services/api.ts +++ b/apps/chat/apps/web/src/lib/services/api.ts @@ -58,7 +58,7 @@ async function fetchApi( } try { - const response = await fetch(`${API_BASE}/api${endpoint}`, { + const response = await fetch(`${API_BASE}/api/v1${endpoint}`, { method, headers: { 'Content-Type': 'application/json',