import { z } from "zod"; import { EntityTable } from 'Dexie'; import { zodDataUrlSchema } from "src/app/utils/zod"; import { MessageAttachmentFileType, MessageAttachmentSource } from "src/app/core/chat/entity/message"; export const AttachmentTableSchema = z.object({ $id: z.number().optional(), // local id $messageId: z.string(), attachmentId: z.string().optional(), file: z.instanceof(Blob), base64: zodDataUrlSchema.nullable().optional(), // fileType: z.nativeEnum(MessageAttachmentFileType), source: z.nativeEnum(MessageAttachmentSource), fileName: z.string().optional(), applicationId: z.number().optional(), docId: z.string().optional(), mimeType: z.string().optional(), id: z.string().uuid().optional(), description: z.string().optional() }) export type AttachmentTable = z.infer export type DexieAttachmentsTableSchema = EntityTable; export const AttachmentTableColumn = '++$id, id, $messageId, messageId, file'