feat(LOY-63): redeem campaign

This commit is contained in:
Christian Andolf
2024-12-20 16:56:33 +01:00
parent 29d1721a8a
commit 9584478b34
17 changed files with 552 additions and 391 deletions

View File

@@ -4,7 +4,7 @@ import type {
RestaurantRewardId,
RewardId,
} from "@/types/components/myPages/rewards"
import type { Reward } from "@/server/routers/contentstack/reward/output"
import type { RewardWithRedeem } from "@/server/routers/contentstack/reward/output"
export function isValidRewardId(id: string): id is RewardId {
return Object.values<string>(REWARD_IDS).includes(id)
@@ -17,22 +17,26 @@ export function isRestaurantReward(
}
export function redeemLocationIsOnSite(
location: Reward["redeemLocation"]
location: RewardWithRedeem["redeemLocation"]
): location is "On-site" {
return location === "On-site"
}
export function isTierType(type: Reward["rewardType"]): type is "Tier" {
export function isTierType(
type: RewardWithRedeem["rewardType"]
): type is "Tier" {
return type === "Tier"
}
export function isOnSiteTierReward(reward: Reward): boolean {
export function isOnSiteTierReward(reward: RewardWithRedeem): boolean {
return (
redeemLocationIsOnSite(reward.redeemLocation) &&
isTierType(reward.rewardType)
)
}
export function isRestaurantOnSiteTierReward(reward: Reward): boolean {
export function isRestaurantOnSiteTierReward(
reward: RewardWithRedeem
): boolean {
return isOnSiteTierReward(reward) && isRestaurantReward(reward.reward_id)
}