// 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: 'supporter-monthly-5', 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: 'member-monthly-15', 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: 'advocate-monthly-30', 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: 'champion-monthly-50', 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); };