Files
web/server/routers/hotels/schemas/image.ts
2024-12-17 16:13:58 +01:00

45 lines
913 B
TypeScript

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
})