Files
web/utils/rewards.ts
2025-01-09 09:47:26 +01:00

43 lines
1.1 KiB
TypeScript

import { RESTAURANT_REWARD_IDS, REWARD_IDS } from "@/constants/rewards"
import type {
RestaurantRewardId,
RewardId,
} from "@/types/components/myPages/rewards"
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)
}
export function isRestaurantReward(
rewardId: string
): rewardId is RestaurantRewardId {
return RESTAURANT_REWARD_IDS.some((id) => id === rewardId)
}
export function redeemLocationIsOnSite(
location: RewardWithRedeem["redeemLocation"]
): location is "On-site" {
return location === "On-site"
}
export function isTierType(
type: RewardWithRedeem["rewardType"]
): type is "Tier" {
return type === "Tier"
}
export function isOnSiteTierReward(reward: RewardWithRedeem): boolean {
return (
redeemLocationIsOnSite(reward.redeemLocation) &&
isTierType(reward.rewardType)
)
}
export function isRestaurantOnSiteTierReward(
reward: RewardWithRedeem
): boolean {
return isOnSiteTierReward(reward) && isRestaurantReward(reward.reward_id)
}