SW-3572 API route for listing hotels per city or country * wip hotel data endpoint * Correct route params type * wip * skip static paths call * timeout when getting destinations take too long * call noStore when we get a timeout * add cache-control headers * . * . * . * wip * wip * wip * wip * add route for getting hotels per country * include city when listing by country * fix distance SI unit * fix sorting * Merge branch 'master' of bitbucket.org:scandic-swap/web into feature/SW-3572-hotel-data-endpoint * packages/tracking passWithNoTests * revalidate must be static value * remove oxc reference * cleanup * cleanup hotel api route * feat(SW-3572): cleanup error handling Approved-by: Anton Gunnarsson
38 lines
871 B
TypeScript
38 lines
871 B
TypeScript
import { z } from "zod"
|
|
|
|
export const locationHotelSchema = z.object({
|
|
id: z.string().optional().default(""),
|
|
type: z.literal("hotels"),
|
|
|
|
attributes: z.object({
|
|
distanceToCentre: z.number().optional(),
|
|
images: z
|
|
.object({
|
|
large: z.string().optional(),
|
|
medium: z.string().optional(),
|
|
small: z.string().optional(),
|
|
tiny: z.string().optional(),
|
|
})
|
|
.optional(),
|
|
isActive: z.boolean(),
|
|
isPublished: z.boolean(),
|
|
keyWords: z.array(z.string()).optional(),
|
|
name: z.string().optional().default(""),
|
|
operaId: z.coerce.string().optional(),
|
|
}),
|
|
|
|
relationships: z
|
|
.object({
|
|
city: z
|
|
.object({
|
|
links: z
|
|
.object({
|
|
related: z.string().optional(),
|
|
})
|
|
.optional(),
|
|
})
|
|
.optional(),
|
|
})
|
|
.optional(),
|
|
})
|