chore: remove unused filter modal

remove old cms model

refactor reward types
This commit is contained in:
Christian Andolf
2025-03-18 09:19:05 +01:00
parent 45d57a9c89
commit f272dde1ef
23 changed files with 345 additions and 891 deletions
@@ -1,4 +1,4 @@
import type { Surprise } from "@/server/routers/contentstack/reward/output"
import type { Surprise } from "../myPages/rewards"
export interface SurprisesProps {
surprises: Surprise[]
@@ -3,7 +3,7 @@ import type { z } from "zod"
import type { DynamicContent } from "@/types/trpc/routers/contentstack/blocks"
import type { blocksSchema } from "@/server/routers/contentstack/accountPage/output"
import type { Reward, RewardWithRedeem } from "../rewards"
import type { Reward } from "../rewards"
export interface AccountPageContentProps
extends Pick<DynamicContent, "dynamic_content"> {}
@@ -21,18 +21,18 @@ export type ContentProps = {
}
export interface CurrentRewardsClientProps {
rewards: (Reward | RewardWithRedeem)[]
rewards: Reward[]
showRedeem: boolean
membershipNumber?: string | null
}
export interface RedeemProps {
reward: RewardWithRedeem
reward: Reward
membershipNumber?: string | null
}
export interface ScriptedRewardTextProps {
reward: Reward | RewardWithRedeem
reward: Reward
}
export type RedeemModalState = "unmounted" | "hidden" | "visible"
@@ -44,7 +44,6 @@ export type RedeemStep =
| "confirm-close"
export type RedeemFlowContext = {
reward: RewardWithRedeem | null
redeemStep: RedeemStep
setRedeemStep: Dispatch<SetStateAction<RedeemStep>>
defaultTimeRemaining: number
@@ -1,19 +1,17 @@
import {
type RESTAURANT_REWARD_IDS,
type REWARD_CATEGORIES,
type REWARD_IDS,
type REWARD_TYPES,
} from "@/constants/rewards"
import type { IconProps } from "@/types/components/icon"
import type { MembershipLevelEnum } from "@/constants/membershipLevels"
import type {
ApiReward,
BenefitReward,
CMSReward,
CMSRewardWithRedeem,
} from "@/server/routers/contentstack/reward/output"
CouponReward,
} from "@/types/trpc/routers/contentstack/reward"
export { type Reward, type RewardWithRedeem }
export type { BaseReward, Campaign, Reward, Surprise, Tier }
export interface RewardIconProps extends IconProps {
rewardId: string
@@ -24,22 +22,21 @@ export type RewardId = (typeof REWARD_IDS)[keyof typeof REWARD_IDS]
export type RestaurantRewardId = (typeof RESTAURANT_REWARD_IDS)[number]
export type RewardType = (typeof REWARD_TYPES)[number]
export type RewardCategory = (typeof REWARD_CATEGORIES)[number]
export interface FilterRewardsModalProps {
selectedCategories: RewardCategory[]
selectedLevels: MembershipLevelEnum[]
onCategoriesChange: (categories: RewardCategory[]) => void
onLevelsChange: (levels: MembershipLevelEnum[]) => void
availableTierLevels: MembershipLevelEnum[]
availableCategories: RewardCategory[]
}
interface Reward extends CMSReward {
data: ApiReward
}
interface RewardWithRedeem extends CMSRewardWithRedeem {
data: ApiReward
}
type BaseReward = ApiReward & CMSReward
type Campaign = CouponReward &
CMSReward & {
rewardType: "Campaign"
}
type Surprise = CouponReward &
CMSReward & {
rewardType: "Surprise"
}
type Tier = BenefitReward &
CMSReward & {
rewardType: "Tier"
}
type MemberVoucher = CouponReward &
CMSReward & {
rewardType: "Member-voucher"
}
type Reward = Campaign | Surprise | Tier | MemberVoucher
@@ -1,6 +1,6 @@
import type { MembershipLevel } from "@/constants/membershipLevels"
import type { LoyaltyLevel } from "@/server/routers/contentstack/loyaltyLevel/output"
import type { Reward } from "./myPages/rewards"
import type { CMSReward } from "../trpc/routers/contentstack/reward"
export type OverviewTableClientProps = {
activeMembership: MembershipLevel | null
@@ -11,7 +11,7 @@ export type LevelCardProps = {
level: LevelWithRewards
}
export type LevelWithRewards = LoyaltyLevel & { rewards: Reward[] }
export type LevelWithRewards = LoyaltyLevel & { rewards: CMSReward[] }
export type ComparisonLevel = LevelWithRewards
@@ -21,13 +21,13 @@ export type LevelSummaryProps = {
}
export type RewardCardProps = {
comparedValues: (Reward | undefined)[]
comparedValues: (CMSReward | undefined)[]
title: string
description: string
}
export type RewardValueProps = {
reward?: Reward
reward?: CMSReward
}
export type RewardListProps = {
@@ -0,0 +1,48 @@
import type { z } from "zod"
import type {
BenefitReward,
CouponData,
CouponReward,
REDEEM_LOCATIONS,
REWARD_TYPES,
rewardRefsSchema,
validateCmsRewardsSchema,
} from "@/server/routers/contentstack/reward/output"
export type {
ApiReward,
BenefitReward,
CMSReward,
CMSRewardsResponse,
Coupon,
CouponReward,
GetRewardRefsSchema,
RedeemableCoupon,
RedeemLocation,
RewardType,
SurpriseReward,
}
type CMSRewardsResponse = z.input<typeof validateCmsRewardsSchema>
type CMSReward = z.output<typeof validateCmsRewardsSchema>[number]
type GetRewardRefsSchema = z.input<typeof rewardRefsSchema>
type RedeemLocation = (typeof REDEEM_LOCATIONS)[number]
type RewardType = (typeof REWARD_TYPES)[keyof typeof REWARD_TYPES]
type Coupon = z.output<typeof CouponData>
type RedeemableCoupon = Coupon & {
state: Exclude<Coupon["state"], "redeemed">
}
type BenefitReward = z.output<typeof BenefitReward>
type CouponReward = z.output<typeof CouponReward>
type SurpriseReward = CouponReward & {
rewardType: "Surprise"
}
type ApiReward = BenefitReward | CouponReward