import { RESTAURANT_REWARD_IDS, REWARD_IDS, REWARD_TYPES, } from "@/constants/rewards" import type { RestaurantRewardId, RewardId, RewardType, } 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(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) } export function getRewardType(type?: string): RewardType | null { return REWARD_TYPES.find((t) => t === type) ?? null }