diff --git a/lib/db/schema/entryScreenshots.ts b/lib/db/schema/entryScreenshots.ts new file mode 100644 index 0000000..68541b0 --- /dev/null +++ b/lib/db/schema/entryScreenshots.ts @@ -0,0 +1,30 @@ +import { + integer, + pgTable, + text, + timestamp, + index, +} from "drizzle-orm/pg-core" +import { performanceEntries } from "./performanceEntries" + +export const entryScreenshots = pgTable( + "entry_screenshots", + { + id: text("id") + .primaryKey() + .$defaultFn(() => crypto.randomUUID()), + entryId: text("entry_id") + .notNull() + .references(() => performanceEntries.id, { onDelete: "cascade" }), + storageKey: text("storage_key").notNull(), + orderIndex: integer("order_index").notNull().default(0), + mimeType: text("mime_type").notNull(), + width: integer("width").notNull(), + height: integer("height").notNull(), + originalName: text("original_name"), + createdAt: timestamp("created_at").defaultNow().notNull(), + }, + (table) => [ + index("entry_screenshots_entry_idx").on(table.entryId), + ], +) \ No newline at end of file diff --git a/lib/db/schema/hardware.ts b/lib/db/schema/hardware.ts index f6794f8..0f8939b 100644 --- a/lib/db/schema/hardware.ts +++ b/lib/db/schema/hardware.ts @@ -1,4 +1,4 @@ -import { integer, pgEnum, pgTable, text, timestamp } from "drizzle-orm/pg-core" +import { integer, pgEnum, pgTable, real, text, timestamp } from "drizzle-orm/pg-core" export const deviceTypeEnum = pgEnum("device_type", ["handheld", "console"]) @@ -7,6 +7,8 @@ export const hardware = pgTable("hardware", { name: text("name").notNull(), deviceType: deviceTypeEnum("device_type").notNull(), image: text("image"), + wattHours: real("watt_hours"), + tdpMax: real("tdp_max"), sortOrder: integer("sort_order").default(0).notNull(), createdAt: timestamp("created_at").defaultNow().notNull(), }) diff --git a/lib/db/schema/index.ts b/lib/db/schema/index.ts index ce6b802..aa0953c 100644 --- a/lib/db/schema/index.ts +++ b/lib/db/schema/index.ts @@ -11,3 +11,4 @@ export * from "./reports" export * from "./community-suggestions" export * from "./saved-filters" export * from "./storage" +export * from "./entryScreenshots" diff --git a/lib/db/schema/performanceEntries.ts b/lib/db/schema/performanceEntries.ts index 4078268..c2fe62f 100644 --- a/lib/db/schema/performanceEntries.ts +++ b/lib/db/schema/performanceEntries.ts @@ -79,9 +79,15 @@ export const performanceEntries = pgTable( settingsJson: jsonb("settings_json").$type(), userNotes: text("user_notes"), - // Battery estimate (minutes) + // Battery estimate (minutes) — @deprecated: auto-computed from tdpWatts + hardware.wattHours estimatedBatteryMin: integer("estimated_battery_min"), + // TDP tracking (watts) — user-set TDP cap during benchmark + tdpWatts: real("tdp_watts"), + + // YouTube video linking + youtubeVideoId: text("youtube_video_id"), + // Custom system flag customSystem: boolean("custom_system").default(false).notNull(),