// Server-side contribution config // Copy of the client-side config for server use // Central configuration for Ghost Guild Contribution Levels and Helcim Plans export const CONTRIBUTION_TIERS = { FREE: { value: "0", amount: 0, label: "$0 - I need support right now", tier: "free", helcimPlanId: null, // No Helcim plan needed for free tier }, SUPPORTER: { value: "5", amount: 5, label: "$5 - I can contribute", tier: "supporter", helcimPlanId: 20162, }, MEMBER: { value: "15", amount: 15, label: "$15 - I can sustain the community", tier: "member", helcimPlanId: 21596, }, ADVOCATE: { value: "30", amount: 30, label: "$30 - I can support others too", tier: "advocate", helcimPlanId: 21597, }, CHAMPION: { value: "50", amount: 50, label: "$50 - I want to sponsor multiple members", tier: "champion", helcimPlanId: 21598, }, }; // Get all contribution options as an array (useful for forms) export const getContributionOptions = () => { return Object.values(CONTRIBUTION_TIERS); }; // Get valid contribution values for validation export const getValidContributionValues = () => { return Object.values(CONTRIBUTION_TIERS).map((tier) => tier.value); }; // Get contribution tier by value export const getContributionTierByValue = (value) => { return Object.values(CONTRIBUTION_TIERS).find((tier) => tier.value === value); }; // Get Helcim plan ID for a contribution tier export const getHelcimPlanId = (contributionValue) => { const tier = getContributionTierByValue(contributionValue); return tier?.helcimPlanId || null; }; // Check if a contribution tier requires payment export const requiresPayment = (contributionValue) => { const tier = getContributionTierByValue(contributionValue); return tier?.amount > 0; }; // Check if a contribution value is valid export const isValidContributionValue = (value) => { return getValidContributionValues().includes(value); }; // Get contribution tier by Helcim plan ID export const getContributionTierByHelcimPlan = (helcimPlanId) => { return Object.values(CONTRIBUTION_TIERS).find( (tier) => tier.helcimPlanId === helcimPlanId, ); }; // Get paid tiers only (excluding free tier) export const getPaidContributionTiers = () => { return Object.values(CONTRIBUTION_TIERS).filter((tier) => tier.amount > 0); };