Files
web/packages/trpc/lib/routers/hotels/schemas/image.ts
Bianca Widstam 34020dad78 Merged in fix/BOOK-136-ancillary-image-without-metadata (pull request #2841)
fix(BOOK-136): ancillary image validation without metadata

* fix(BOOK-136): ancillary image validation without metadata

* fix(BOOK-136): ancillary image


Approved-by: Erik Tiekstra
2025-09-22 12:17:12 +00:00

47 lines
1.1 KiB
TypeScript

import { z } from "zod"
import { nullableStringValidator } from "@scandic-hotels/common/utils/zod/stringValidator"
const DEFAULT_IMAGE_OBJ = {
altText: "Default image",
altText_En: "Default image",
title: "Default image",
title_En: "Default image",
src: "https://placehold.co/1280x720",
}
export const imageWithoutMetaDataSchema = z
.object({
imageSizes: z.object({
original: nullableStringValidator,
}),
})
.nullish()
export const imageSchema = z
.object({
imageSizes: z.object({
original: nullableStringValidator,
}),
metaData: z.object({
altText: nullableStringValidator,
altText_En: nullableStringValidator,
copyRight: nullableStringValidator,
title: nullableStringValidator,
title_En: nullableStringValidator,
}),
})
.nullish()
.transform((val) => {
if (!val) {
return DEFAULT_IMAGE_OBJ
}
return {
src: val.imageSizes.original,
altText: val.metaData.altText,
altText_En: val.metaData.altText_En,
title: val.metaData.title,
title_En: val.metaData.title_En,
}
})