1import type { File } from "@prisma/client";
2
3
8export interface FileRecord {
9 id: string;
10 workspaceId: string;
11 blockId: string | null;
12 pageId: string | null;
13 name: string;
14 size: number;
15 mimeType: string;
16 status: string;
17 metadata: Record<string, unknown>;
18 thumbnailKey: string | null;
19 thumbnailUrl: string | null;
20 scanReport: Record<string, unknown> | null;
21 uploadedBy: string;
22 version: number;
23 createdAt: string;
24 updatedAt: string;
25}
26
27export function toFileRecord(file: File, version: number): FileRecord {
28 return {
29 id: file.id,
30 workspaceId: file.workspaceId,
31 blockId: file.blockId,
32 pageId: file.pageId,
33 name: file.name,
34 size: file.size,
35 mimeType: file.mimeType,
36 status: file.status,
37 metadata: (file.metadata as Record<string, unknown>) ?? {},
38 thumbnailKey: file.thumbnailKey,
39 thumbnailUrl: file.thumbnailUrl,
40 scanReport: (file.scanReport as Record<string, unknown> | null) ?? null,
41 uploadedBy: file.uploadedBy,
42 version,
43 createdAt: file.createdAt.toISOString(),
44 updatedAt: file.updatedAt.toISOString(),
45 };
46}
47