diff --git a/src/lib/validators/documents.ts b/src/lib/validators/documents.ts index 02de6de8..dc9691f4 100644 --- a/src/lib/validators/documents.ts +++ b/src/lib/validators/documents.ts @@ -86,7 +86,11 @@ export const listDocumentsSchema = baseListQuerySchema interestId: z.string().optional(), clientId: z.string().optional(), documentType: z.string().optional(), - folderId: z.string().nullable().optional(), + folderId: z + .string() + .nullable() + .optional() + .transform((v) => (v === '' ? null : v)), includeDescendants: z.coerce.boolean().optional(), status: z.string().optional(), /** Hub tab filter - applies tab-specific status / signer-membership constraints. */ diff --git a/src/lib/validators/files.ts b/src/lib/validators/files.ts index f74f7db5..096885c5 100644 --- a/src/lib/validators/files.ts +++ b/src/lib/validators/files.ts @@ -24,7 +24,11 @@ export const listFilesSchema = baseListQuerySchema yachtId: z.string().optional(), companyId: z.string().optional(), category: z.string().optional(), - folderId: z.string().uuid().optional(), + folderId: z + .string() + .uuid() + .optional() + .transform((v) => (v === '' ? null : v)), /** Entity-aggregated projection params — mutually exclusive with folderId. */ entityType: z.enum(['client', 'company', 'yacht']).optional(), entityId: z.string().uuid().optional(),