108 lines
No EOL
3 KiB
JavaScript
108 lines
No EOL
3 KiB
JavaScript
// 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);
|
|
}; |