diff --git a/packages/trpc/lib/routers/partners/sas/getEuroBonusProfile.ts b/packages/trpc/lib/routers/partners/sas/getEuroBonusProfile.ts index dddec3eb9..840d84519 100644 --- a/packages/trpc/lib/routers/partners/sas/getEuroBonusProfile.ts +++ b/packages/trpc/lib/routers/partners/sas/getEuroBonusProfile.ts @@ -7,24 +7,40 @@ import { protectedProcedure } from "../../../procedures" const outputSchema = z.object({ eurobonusNumber: z.string(), - linkStatus: z.enum(["UNLINKED", "LINKED"]), + firstName: z.string().optional(), + lastName: z.string().optional(), + linkStatus: z.enum(["LINKED", "PENDING", "UNLINKED"]), isBlocked: z.boolean(), enrollmentDate: z.string(), birthdate: z.string(), mobileNumber: z.string(), email: z.string().email(), points: z.object({ - balances: z.array(z.unknown()), + balances: z.array( + z.object({ + expirationDate: z.string(), + points: z.number(), + }) + ), total: z.number(), }), tier: z.string(), tierStartDate: z.string(), + /* `null` if customer is (i.) Lifetime Gold and tier is Gold or (ii.) tier is Basic. If customer is Lifetime Gold and tier is above Gold (e.g., Diamond), there will be a tier end date */ tierEndDate: z.string().nullable(), lifeTimeGold: z.boolean(), tierBoostRequestedByScandic: z.boolean(), - firstName: z.string(), - lastName: z.string(), - whoBoosted: z.enum(["NO-BOOST", "BOOSTED"]), + whoBoosted: z + .enum(["NO-BOOST", "SAS", "SCANDIC", "UNKNOWN"]) + .default("UNKNOWN") + .catch((ctx) => { + sasLogger.warn(`Unknown whoBoosted value received: ${ctx.input}`) + return "UNKNOWN" + }), + tierBoostDescription: z.string().optional(), + tierMatchStatus: z + .enum(["MATCHED", "FAILED", "PENDING", "UNMATCHED"]) + .optional(), }) const sasLogger = createLogger("SAS")