diff --git a/prisma/migrations/20260221012720_add_enable_pause_overlay/migration.sql b/prisma/migrations/20260221012720_add_enable_pause_overlay/migration.sql new file mode 100644 index 0000000..2250e12 --- /dev/null +++ b/prisma/migrations/20260221012720_add_enable_pause_overlay/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "user_settings" ADD COLUMN "enable_pause_overlay" BOOLEAN NOT NULL DEFAULT false; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 1125d70..f23cb3b 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -127,6 +127,7 @@ model user_settings { debrid_token String? @db.VarChar(255) enable_auto_resume_on_playback_error Boolean @default(false) tidb_key String? @db.VarChar(255) + enable_pause_overlay Boolean @default(false) } model users { diff --git a/server/routes/users/[id]/settings.ts b/server/routes/users/[id]/settings.ts index 2353965..1810922 100644 --- a/server/routes/users/[id]/settings.ts +++ b/server/routes/users/[id]/settings.ts @@ -43,6 +43,7 @@ const userSettingsSchema = z.object({ manualSourceSelection: z.boolean().optional().default(false), enableDoubleClickToSeek: z.boolean().optional().default(false), enableAutoResumeOnPlaybackError: z.boolean().optional().default(false), + enablePauseOverlay: z.boolean().optional().default(false), }); export default defineEventHandler(async event => { @@ -109,6 +110,8 @@ export default defineEventHandler(async event => { homeSectionOrder: settings?.home_section_order || [], manualSourceSelection: settings?.manual_source_selection ?? false, enableDoubleClickToSeek: settings?.enable_double_click_to_seek ?? false, + enableAutoResumeOnPlaybackError: settings?.enable_auto_resume_on_playback_error ?? false, + enablePauseOverlay: settings?.enable_pause_overlay ?? false, }; } catch (error) { log.error('Failed to get user settings', { @@ -162,7 +165,8 @@ export default defineEventHandler(async event => { home_section_order: validatedBody.homeSectionOrder || [], manual_source_selection: validatedBody.manualSourceSelection, enable_double_click_to_seek: validatedBody.enableDoubleClickToSeek, - enable_auto_resume_on_playback_error: false, + enable_auto_resume_on_playback_error: validatedBody.enableAutoResumeOnPlaybackError, + enable_pause_overlay: validatedBody.enablePauseOverlay, }; const updateData: Partial = {}; @@ -230,6 +234,8 @@ export default defineEventHandler(async event => { updateData.manual_source_selection = createData.manual_source_selection; if (Object.prototype.hasOwnProperty.call(body, 'enableDoubleClickToSeek')) updateData.enable_double_click_to_seek = createData.enable_double_click_to_seek; + if (Object.prototype.hasOwnProperty.call(body, 'enablePauseOverlay')) + updateData.enable_pause_overlay = createData.enable_pause_overlay; log.info('Preparing to upsert settings', { userId, @@ -282,6 +288,8 @@ export default defineEventHandler(async event => { homeSectionOrder: settings.home_section_order, manualSourceSelection: settings.manual_source_selection, enableDoubleClickToSeek: settings.enable_double_click_to_seek, + enableAutoResumeOnPlaybackError: settings.enable_auto_resume_on_playback_error, + enablePauseOverlay: settings.enable_pause_overlay, }; } catch (error) { log.error('Failed to update user settings', {