63 lines
1.3 KiB
TypeScript
63 lines
1.3 KiB
TypeScript
import { z } from "zod"
|
|
|
|
export const getMetaDataSchema = z.object({
|
|
breadcrumbsTitle: z.string().optional(),
|
|
title: z.string().optional(),
|
|
description: z.string().optional(),
|
|
imageConnection: z
|
|
.object({
|
|
edges: z.array(
|
|
z.object({
|
|
node: z.object({
|
|
url: z.string(),
|
|
}),
|
|
})
|
|
),
|
|
})
|
|
.optional(),
|
|
})
|
|
|
|
const page = z.object({
|
|
web: z.object({
|
|
seo_metadata: z.object({
|
|
title: z.string().optional(),
|
|
description: z.string().optional(),
|
|
imageConnection: z
|
|
.object({
|
|
edges: z.array(
|
|
z.object({
|
|
node: z.object({
|
|
url: z.string(),
|
|
}),
|
|
})
|
|
),
|
|
})
|
|
.optional(),
|
|
}),
|
|
breadcrumbs: z.object({
|
|
title: z.string(),
|
|
}),
|
|
}),
|
|
system: z.object({
|
|
uid: z.string(),
|
|
}),
|
|
})
|
|
|
|
export type Page = z.infer<typeof page>
|
|
|
|
export const validateMyPagesMetaDataContentstackSchema = z.object({
|
|
account_page: page,
|
|
})
|
|
|
|
export type GetMyPagesMetaDataData = z.infer<
|
|
typeof validateMyPagesMetaDataContentstackSchema
|
|
>
|
|
|
|
export const validateLoyaltyPageMetaDataContentstackSchema = z.object({
|
|
loyalty_page: page,
|
|
})
|
|
|
|
export type GetLoyaltyPageMetaDataData = z.infer<
|
|
typeof validateLoyaltyPageMetaDataContentstackSchema
|
|
>
|