fix: align placeholder handling for all hotel images in zod

This commit is contained in:
Christel Westerberg
2024-12-17 10:20:26 +01:00
parent 0c62cb6d96
commit 8328493289
6 changed files with 47 additions and 82 deletions

View File

@@ -1,20 +1,44 @@
import { z } from "zod"
export const imageSizesSchema = z.object({
const imageSizesSchema = z.object({
tiny: z.string(),
small: z.string(),
medium: z.string(),
large: z.string(),
})
export const imageMetaDataSchema = z.object({
const imageMetaDataSchema = z.object({
title: z.string(),
altText: z.string(),
altText_En: z.string(),
copyRight: z.string(),
})
export const imageSchema = z.object({
metaData: imageMetaDataSchema,
imageSizes: imageSizesSchema,
})
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
})

View File

@@ -1,14 +1,9 @@
import { z } from "zod"
import { imageMetaDataSchema, imageSizesSchema } from "./image"
import { imageSchema } from "./image"
const roomContentSchema = z.object({
images: z.array(
z.object({
metaData: imageMetaDataSchema,
imageSizes: imageSizesSchema,
})
),
images: z.array(imageSchema),
texts: z.object({
descriptions: z.object({
short: z.string().optional(),