32 lines
650 B
TypeScript
32 lines
650 B
TypeScript
import { z } from "zod"
|
|
|
|
const awardSchema = z.object({
|
|
displayName: z.string(),
|
|
images: z.object({
|
|
large: z.string(),
|
|
medium: z.string(),
|
|
small: z.string(),
|
|
}),
|
|
})
|
|
|
|
const reviewsSchema = z
|
|
.object({
|
|
widgetHtmlTagId: z.string(),
|
|
widgetScriptEmbedUrlIframe: z.string(),
|
|
widgetScriptEmbedUrlJavaScript: z.string(),
|
|
})
|
|
.optional()
|
|
|
|
export const ratingsSchema = z
|
|
.object({
|
|
tripAdvisor: z.object({
|
|
awards: z.array(awardSchema),
|
|
numberOfReviews: z.number(),
|
|
rating: z.number(),
|
|
ratingImageUrl: z.string(),
|
|
reviews: reviewsSchema,
|
|
webUrl: z.string(),
|
|
}),
|
|
})
|
|
.optional()
|