import { z } from "zod" const imageSizesSchema = z.object({ tiny: z.string(), small: z.string(), medium: z.string(), large: z.string(), }) const imageMetaDataSchema = z.object({ title: z.string(), altText: z.string(), altText_En: z.string(), copyRight: z.string(), }) const DEFAULT_IMAGE_OBJ = { metaData: { title: "Default image", altText: "Default image", altText_En: "Default image", copyRight: "Default image", }, imageSizes: { tiny: "https://placehold.co/1280x720", small: "https://placehold.co/1280x720", medium: "https://placehold.co/1280x720", large: "https://placehold.co/1280x720", }, } export const imageSchema = z .object({ metaData: imageMetaDataSchema, imageSizes: imageSizesSchema, }) .default(DEFAULT_IMAGE_OBJ) .nullable() .transform((val) => { if (!val) { return DEFAULT_IMAGE_OBJ } return val })