// 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 features: ["Access to basic resources", "Community forum access"], }, SUPPORTER: { value: "5", amount: 5, label: "$5 - I can contribute a little", tier: "supporter", helcimPlanId: 20162, features: [ "All Free Membership benefits", "Priority community support", "Early access to events", ], }, MEMBER: { value: "15", amount: 15, label: "$15 - I can sustain the community", tier: "member", helcimPlanId: 21596, features: [ "All Supporter benefits", "Access to premium workshops", "Monthly 1-on-1 sessions", "Advanced resource library", ], }, ADVOCATE: { value: "30", amount: 30, label: "$30 - I can support others too", tier: "advocate", helcimPlanId: 21597, features: [ "All Member benefits", "Weekly group mentoring", "Access to exclusive events", "Direct messaging with experts", ], }, CHAMPION: { value: "50", amount: 50, label: "$50 - I want to sponsor multiple members", tier: "champion", helcimPlanId: 21598, features: [ "All Advocate benefits", "Personal mentoring sessions", "VIP event access", "Custom project support", "Annual strategy session", ], }, }; // 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); };