Files
web/server/routers/contentstack/schemas/blocks/sasTierComparison.ts
Anton Gunnarsson eacca33847 Merged in feature/tier-matching-component (pull request #1175)
SAS Tier matching comparison block (SW-921)

Approved-by: Joakim Jäderberg
Approved-by: Matilda Landström
2025-01-22 08:15:31 +00:00

65 lines
1.7 KiB
TypeScript

import { z } from "zod"
import { MembershipLevelEnum } from "@/constants/membershipLevels"
import { BlocksEnums } from "@/types/enums/blocks"
const link = z.object({
href: z.string(),
title: z.string(),
})
export const sasTierComparisonSchema = z.object({
typename: z
.literal(BlocksEnums.block.SasTierComparison)
.optional()
.default(BlocksEnums.block.SasTierComparison),
sas_tier_comparison: z
.object({
comparisonConnection: z.object({
edges: z.array(
z.object({
node: z.object({
title: z.string(),
preamble: z.string().optional(),
scandic_friends: z.object({
title: z.string(),
label: z.string(),
tiers: z.array(
z.object({
tier_code: z.nativeEnum(MembershipLevelEnum),
tier_label: z.string(),
})
),
read_more_link: link.optional(),
}),
sas_eb: z.object({
title: z.string(),
label: z.string(),
tiers: z.array(
z.object({
tier_code: z.enum([
"Basic",
"Silver",
"Gold",
"Diamond",
"Pandion",
]),
tier_label: z.string(),
})
),
read_more_link: link.optional(),
}),
cta: link.optional(),
}),
})
),
}),
})
.transform((data) => {
return {
sasTierComparison: data.comparisonConnection.edges.at(0)?.node ?? null,
}
}),
})