- Documents page shows a "Local Folder" card for each selected patient
with an "Open in Cloud Storage" button that deep-links to their folder
- Cloud Storage page reads ?folderId URL param on mount and auto-opens
the folder panel for seamless navigation from Documents
- Backend: GET /api/cloud-storage/patient-folder/:patientId endpoint
that idempotently gets or creates a top-level CloudFolder per patient
- CloudFolder schema gains optional patientId field linked to Patient
- Disk directories for cloud storage folders now use the folder's name
(e.g. "Xiaohui Wang/") instead of the opaque "folder-{id}/" path
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
46 lines
3.3 KiB
TypeScript
46 lines
3.3 KiB
TypeScript
import type { Prisma } from '../../generated/prisma';
|
|
import * as z from 'zod';
|
|
import { CloudFolderIncludeObjectSchema as CloudFolderIncludeObjectSchema } from './objects/CloudFolderInclude.schema';
|
|
import { CloudFolderOrderByWithRelationInputObjectSchema as CloudFolderOrderByWithRelationInputObjectSchema } from './objects/CloudFolderOrderByWithRelationInput.schema';
|
|
import { CloudFolderWhereInputObjectSchema as CloudFolderWhereInputObjectSchema } from './objects/CloudFolderWhereInput.schema';
|
|
import { CloudFolderWhereUniqueInputObjectSchema as CloudFolderWhereUniqueInputObjectSchema } from './objects/CloudFolderWhereUniqueInput.schema';
|
|
import { CloudFolderScalarFieldEnumSchema } from './enums/CloudFolderScalarFieldEnum.schema';
|
|
|
|
// Select schema needs to be in file to prevent circular imports
|
|
//------------------------------------------------------
|
|
|
|
export const CloudFolderFindFirstSelectSchema: z.ZodType<Prisma.CloudFolderSelect> = z.object({
|
|
id: z.boolean().optional(),
|
|
userId: z.boolean().optional(),
|
|
name: z.boolean().optional(),
|
|
parentId: z.boolean().optional(),
|
|
patientId: z.boolean().optional(),
|
|
parent: z.boolean().optional(),
|
|
children: z.boolean().optional(),
|
|
user: z.boolean().optional(),
|
|
patient: z.boolean().optional(),
|
|
files: z.boolean().optional(),
|
|
createdAt: z.boolean().optional(),
|
|
updatedAt: z.boolean().optional(),
|
|
_count: z.boolean().optional()
|
|
}).strict() as unknown as z.ZodType<Prisma.CloudFolderSelect>;
|
|
|
|
export const CloudFolderFindFirstSelectZodSchema = z.object({
|
|
id: z.boolean().optional(),
|
|
userId: z.boolean().optional(),
|
|
name: z.boolean().optional(),
|
|
parentId: z.boolean().optional(),
|
|
patientId: z.boolean().optional(),
|
|
parent: z.boolean().optional(),
|
|
children: z.boolean().optional(),
|
|
user: z.boolean().optional(),
|
|
patient: z.boolean().optional(),
|
|
files: z.boolean().optional(),
|
|
createdAt: z.boolean().optional(),
|
|
updatedAt: z.boolean().optional(),
|
|
_count: z.boolean().optional()
|
|
}).strict();
|
|
|
|
export const CloudFolderFindFirstSchema: z.ZodType<Prisma.CloudFolderFindFirstArgs> = z.object({ select: CloudFolderFindFirstSelectSchema.optional(), include: z.lazy(() => CloudFolderIncludeObjectSchema.optional()), orderBy: z.union([CloudFolderOrderByWithRelationInputObjectSchema, CloudFolderOrderByWithRelationInputObjectSchema.array()]).optional(), where: CloudFolderWhereInputObjectSchema.optional(), cursor: CloudFolderWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([CloudFolderScalarFieldEnumSchema, CloudFolderScalarFieldEnumSchema.array()]).optional() }).strict() as unknown as z.ZodType<Prisma.CloudFolderFindFirstArgs>;
|
|
|
|
export const CloudFolderFindFirstZodSchema = z.object({ select: CloudFolderFindFirstSelectSchema.optional(), include: z.lazy(() => CloudFolderIncludeObjectSchema.optional()), orderBy: z.union([CloudFolderOrderByWithRelationInputObjectSchema, CloudFolderOrderByWithRelationInputObjectSchema.array()]).optional(), where: CloudFolderWhereInputObjectSchema.optional(), cursor: CloudFolderWhereUniqueInputObjectSchema.optional(), take: z.number().optional(), skip: z.number().optional(), distinct: z.union([CloudFolderScalarFieldEnumSchema, CloudFolderScalarFieldEnumSchema.array()]).optional() }).strict(); |