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, } }), })