v2.0: sound library, image upload, DnD, ResourceBrowser, Barotrauma HUD, captain sanity
Deploy / build-and-deploy (push) Failing after 52s

This commit is contained in:
2026-06-15 01:07:05 +03:00
parent 9deec9d23e
commit d0cd008f6e
16 changed files with 1039 additions and 231 deletions
+21 -1
View File
@@ -1,4 +1,4 @@
import { sqliteTable, text, integer, uniqueIndex } from "drizzle-orm/sqlite-core";
import { sqliteTable, text, integer, real, uniqueIndex } from "drizzle-orm/sqlite-core";
export const users = sqliteTable("users", {
id: text("id").primaryKey(),
@@ -31,12 +31,32 @@ export const bingoItems = sqliteTable("bingo_items", {
emoji: text("emoji").notNull().default("💀"),
soundCategory: text("sound_category").notNull().default("horn"),
soundUrl: text("sound_url"),
imageUrl: text("image_url"),
gridIndex: integer("grid_index").notNull(),
createdAt: text("created_at").notNull(),
}, (table) => [
uniqueIndex("idx_campaign_item_pos").on(table.campaignId, table.gridIndex),
]);
export const sounds = sqliteTable("sounds", {
id: text("id").primaryKey(),
originalName: text("original_name").notNull(),
storedFilename: text("stored_filename").unique().notNull(),
duration: real("duration").notNull().default(0),
uploadedBy: text("uploaded_by").notNull().references(() => users.id),
createdAt: text("created_at").notNull(),
});
export const images = sqliteTable("images", {
id: text("id").primaryKey(),
originalName: text("original_name").notNull(),
storedFilename: text("stored_filename").unique().notNull(),
mimeType: text("mime_type").notNull().default("image/png"),
fileSize: integer("file_size").notNull(),
uploadedBy: text("uploaded_by").notNull().references(() => users.id),
createdAt: text("created_at").notNull(),
});
export const marks = sqliteTable("marks", {
id: text("id").primaryKey(),
campaignId: text("campaign_id").notNull().references(() => campaigns.id, { onDelete: "cascade" }),