From c70fb7f06e646c9cd69fbb6054206c4c3968712d Mon Sep 17 00:00:00 2001 From: Izan <66965250+SrIzan10@users.noreply.github.com> Date: Tue, 13 Jan 2026 22:02:40 +0100 Subject: [PATCH] fix: unique constraint on name, and flex redesign --- app/lib/db/schema.ts | 6 +- app/pages/index.vue | 67 ++++-- app/pages/presets/shared/[id].vue | 23 +- drizzle/0003_large_nocturne.sql | 2 + drizzle/meta/0003_snapshot.json | 313 +++++++++++++++++++++++++ drizzle/meta/_journal.json | 7 + server/api/presets/[id]/import.post.ts | 10 +- 7 files changed, 393 insertions(+), 35 deletions(-) create mode 100644 drizzle/0003_large_nocturne.sql create mode 100644 drizzle/meta/0003_snapshot.json diff --git a/app/lib/db/schema.ts b/app/lib/db/schema.ts index f6d2c11..3f6eee8 100644 --- a/app/lib/db/schema.ts +++ b/app/lib/db/schema.ts @@ -35,11 +35,13 @@ export const roomViewers = pgTable("room_viewers", { export const presets = pgTable("presets", { id: uuid("id").primaryKey().defaultRandom(), createdBy: text("created_by").notNull(), - name: text("name").notNull().unique(), + name: text("name").notNull(), iceServers: text("ice_servers").notNull(), // stringified json obv shareable: boolean("shareable").notNull().default(false), createdAt: timestamp("created_at").notNull().defaultNow(), -}); +}, (table) => ({ + uniqueUserPresetName: uniqueIndex().on(table.createdBy, table.name), +})); export const presetUsers = pgTable( "preset_users", diff --git a/app/pages/index.vue b/app/pages/index.vue index 49d7177..c983c5d 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -1,13 +1,20 @@