import { z } from "zod"; export const updateExternalCsvConfigurationSchema = z .object({ expectedRevision: z.number().int().nonnegative(), configuration: z.unknown(), }) .strict(); export const previewExternalCsvSchema = z .object({ fileName: z.string().trim().min(1).max(255), contentBase64: z.string().min(1).max(24_000_000), }) .strict(); export const planExternalInitialImportSchema = previewExternalCsvSchema; export const applyExternalInitialImportSchema = z.object({ expectedRevision: z.number().int().nonnegative(), expectedConfigurationVersion: z.number().int().positive(), expectedSha256: z.string().regex(/^[a-f0-9]{64}$/), fileName: z.string().trim().min(1).max(255), contentBase64: z.string().min(1).max(24_000_000), sourceName: z.string().trim().min(1).max(200), roomDecisions: z.array(z.object({ sourceRoomKey: z.string().trim().min(1), roomId: z.string().trim().min(1).nullable(), defaultDistributionBoardId: z.string().trim().min(1).nullable(), }).strict()), familyProjectDeviceDecisions: z.array(z.object({ familyAndType: z.string(), projectDeviceId: z.string().trim().min(1).nullable(), }).strict()), }).strict();