diff options
Diffstat (limited to 'packages/shared')
| -rw-r--r-- | packages/shared/assetdb.ts | 2 | ||||
| -rw-r--r-- | packages/shared/types/backups.ts | 14 | ||||
| -rw-r--r-- | packages/shared/types/users.ts | 12 |
3 files changed, 28 insertions, 0 deletions
diff --git a/packages/shared/assetdb.ts b/packages/shared/assetdb.ts index ff87e847..2e22faf7 100644 --- a/packages/shared/assetdb.ts +++ b/packages/shared/assetdb.ts @@ -26,6 +26,7 @@ export const enum ASSET_TYPES { IMAGE_PNG = "image/png", IMAGE_WEBP = "image/webp", APPLICATION_PDF = "application/pdf", + APPLICATION_ZIP = "application/zip", TEXT_HTML = "text/html", VIDEO_MP4 = "video/mp4", @@ -65,6 +66,7 @@ export const SUPPORTED_ASSET_TYPES: Set<string> = new Set<string>([ ...SUPPORTED_UPLOAD_ASSET_TYPES, ASSET_TYPES.TEXT_HTML, ASSET_TYPES.VIDEO_MP4, + ASSET_TYPES.APPLICATION_ZIP, ]); export const zAssetMetadataSchema = z.object({ diff --git a/packages/shared/types/backups.ts b/packages/shared/types/backups.ts new file mode 100644 index 00000000..f54d4824 --- /dev/null +++ b/packages/shared/types/backups.ts @@ -0,0 +1,14 @@ +import { z } from "zod"; + +export const zBackupSchema = z.object({ + id: z.string(), + userId: z.string(), + assetId: z.string().nullable(), + createdAt: z.date(), + size: z.number(), + bookmarkCount: z.number(), + status: z.enum(["pending", "success", "failure"]), + errorMessage: z.string().nullable().optional(), +}); + +export type ZBackup = z.infer<typeof zBackupSchema>; diff --git a/packages/shared/types/users.ts b/packages/shared/types/users.ts index 830fe87b..2fad4f83 100644 --- a/packages/shared/types/users.ts +++ b/packages/shared/types/users.ts @@ -108,6 +108,9 @@ export const zUserSettingsSchema = z.object({ ]), archiveDisplayBehaviour: z.enum(["show", "hide"]), timezone: z.string(), + backupsEnabled: z.boolean(), + backupsFrequency: z.enum(["daily", "weekly"]), + backupsRetentionDays: z.number().int().min(1).max(365), }); export type ZUserSettings = z.infer<typeof zUserSettingsSchema>; @@ -116,4 +119,13 @@ export const zUpdateUserSettingsSchema = zUserSettingsSchema.partial().pick({ bookmarkClickAction: true, archiveDisplayBehaviour: true, timezone: true, + backupsEnabled: true, + backupsFrequency: true, + backupsRetentionDays: true, +}); + +export const zUpdateBackupSettingsSchema = zUpdateUserSettingsSchema.pick({ + backupsEnabled: true, + backupsFrequency: true, + backupsRetentionDays: true, }); |
