diff --git a/server/api/admin/dashboard.get.js b/server/api/admin/dashboard.get.js index 31786e1..41fe694 100644 --- a/server/api/admin/dashboard.get.js +++ b/server/api/admin/dashboard.get.js @@ -17,9 +17,9 @@ export default defineEventHandler(async (event) => { }) // Calculate monthly revenue from member contributions - const members = await Member.find({}, 'contributionTier').lean() + const members = await Member.find({}, 'contributionAmount').lean() const monthlyRevenue = members.reduce((total, member) => { - return total + parseInt(member.contributionTier || '0') + return total + (member.contributionAmount || 0) }, 0) const pendingSlackInvites = await Member.countDocuments({ slackInvited: false }) diff --git a/server/api/admin/members.post.js b/server/api/admin/members.post.js index cfb6fcb..88a1101 100644 --- a/server/api/admin/members.post.js +++ b/server/api/admin/members.post.js @@ -23,7 +23,7 @@ export default defineEventHandler(async (event) => { name: body.name, email: body.email, circle: body.circle, - contributionTier: body.contributionTier, + contributionAmount: body.contributionAmount, slackInvited: false }) diff --git a/server/api/admin/members/[id].put.js b/server/api/admin/members/[id].put.js index 826fe76..c2cc52e 100644 --- a/server/api/admin/members/[id].put.js +++ b/server/api/admin/members/[id].put.js @@ -26,7 +26,7 @@ export default defineEventHandler(async (event) => { name: body.name, email: body.email, circle: body.circle, - contributionTier: body.contributionTier, + contributionAmount: body.contributionAmount, status: body.status, }, { new: true }) @@ -35,7 +35,7 @@ export default defineEventHandler(async (event) => { if (existing.name !== body.name) changedFields.push('name') if (existing.email !== body.email) changedFields.push('email') if (existing.circle !== body.circle) changedFields.push('circle') - if (existing.contributionTier !== body.contributionTier) changedFields.push('contributionTier') + if (existing.contributionAmount !== body.contributionAmount) changedFields.push('contributionAmount') if (existing.status !== body.status) changedFields.push('status') if (changedFields.length) { @@ -58,7 +58,7 @@ export default defineEventHandler(async (event) => { name: updated.name, email: updated.email, circle: updated.circle, - contributionTier: updated.contributionTier, + contributionAmount: updated.contributionAmount, status: updated.status, role: updated.role, } diff --git a/server/api/admin/members/import.post.js b/server/api/admin/members/import.post.js index 08ebeb8..fb77896 100644 --- a/server/api/admin/members/import.post.js +++ b/server/api/admin/members/import.post.js @@ -36,7 +36,7 @@ export default defineEventHandler(async (event) => { name: row.name, email: row.email, circle: row.circle, - contributionTier: row.contributionTier, + contributionAmount: row.contributionAmount, slackInvited: false }) const saved = await member.save() diff --git a/server/api/auth/member.get.js b/server/api/auth/member.get.js index 5dbcfd8..8df1173 100644 --- a/server/api/auth/member.get.js +++ b/server/api/auth/member.get.js @@ -11,10 +11,10 @@ export default defineEventHandler(async (event) => { status: member.status, role: member.role || 'member', circle: member.circle, - contributionTier: member.contributionTier, + contributionAmount: member.contributionAmount, billingCadence: member.billingCadence, helcimCustomerId: member.helcimCustomerId, - membershipLevel: `${member.circle}-${member.contributionTier}`, + membershipLevel: `${member.circle}-${member.contributionAmount}`, // Profile fields pronouns: member.pronouns, timeZone: member.timeZone, diff --git a/server/api/auth/status.get.js b/server/api/auth/status.get.js index 08928a3..049c539 100644 --- a/server/api/auth/status.get.js +++ b/server/api/auth/status.get.js @@ -30,8 +30,8 @@ export default defineEventHandler(async (event) => { name: member.name, circle: member.circle, status: member.status, - contributionTier: member.contributionTier, - membershipLevel: `${member.circle}-${member.contributionTier}` + contributionAmount: member.contributionAmount, + membershipLevel: `${member.circle}-${member.contributionAmount}` } } } catch (err) { diff --git a/server/api/dev/test-login.get.js b/server/api/dev/test-login.get.js index f6b87d2..32ac0b9 100644 --- a/server/api/dev/test-login.get.js +++ b/server/api/dev/test-login.get.js @@ -20,7 +20,7 @@ export default defineEventHandler(async (event) => { $setOnInsert: { name: "Test Admin", circle: "founder", - contributionTier: "0", + contributionAmount: 0, role: "admin", status: "active", }, diff --git a/server/api/events/[id]/payment.post.js b/server/api/events/[id]/payment.post.js index 2f885a6..26b0d7f 100644 --- a/server/api/events/[id]/payment.post.js +++ b/server/api/events/[id]/payment.post.js @@ -61,7 +61,7 @@ export default defineEventHandler(async (event) => { eventData.registrations.push({ name: body.name, email: body.email.toLowerCase(), - membershipLevel: `${member.circle}-${member.contributionTier}`, + membershipLevel: `${member.circle}-${member.contributionAmount}`, isMember: true, paymentStatus: 'not_required', amountPaid: 0 diff --git a/server/api/events/[id]/register.post.js b/server/api/events/[id]/register.post.js index ba0707f..7f6685f 100644 --- a/server/api/events/[id]/register.post.js +++ b/server/api/events/[id]/register.post.js @@ -97,7 +97,7 @@ export default defineEventHandler(async (event) => { if (memberHasAccess) { isMember = true; - membershipLevel = `${member.circle}-${member.contributionTier}`; + membershipLevel = `${member.circle}-${member.contributionAmount}`; } // Add registration diff --git a/server/api/events/[id]/tickets/check-eligibility.post.js b/server/api/events/[id]/tickets/check-eligibility.post.js index c0d5820..89c3086 100644 --- a/server/api/events/[id]/tickets/check-eligibility.post.js +++ b/server/api/events/[id]/tickets/check-eligibility.post.js @@ -14,7 +14,7 @@ export default defineEventHandler(async (event) => { // Check if user is a member const member = await Member.findOne({ email: body.email.toLowerCase(), - }).select("email name circle contributionTier"); + }).select("email name circle contributionAmount"); if (!member) { return { @@ -28,7 +28,7 @@ export default defineEventHandler(async (event) => { eligibleForMemberPricing: true, memberInfo: { circle: member.circle, - tier: member.contributionTier, + amount: member.contributionAmount, name: member.name, }, }; diff --git a/server/api/events/[id]/tickets/purchase.post.js b/server/api/events/[id]/tickets/purchase.post.js index 7574d74..571d813 100644 --- a/server/api/events/[id]/tickets/purchase.post.js +++ b/server/api/events/[id]/tickets/purchase.post.js @@ -101,7 +101,7 @@ export default defineEventHandler(async (event) => { email: body.email.toLowerCase(), name: body.name, circle: "community", - contributionTier: "0", + contributionAmount: 0, status: "guest", }, }, @@ -117,7 +117,7 @@ export default defineEventHandler(async (event) => { name: body.name, email: body.email.toLowerCase(), membershipLevel: memberHasAccess - ? `${member.circle}-${member.contributionTier}` + ? `${member.circle}-${member.contributionAmount}` : "non-member", isMember: memberHasAccess, ticketType: ticketInfo.ticketType, diff --git a/server/api/events/[id]/waitlist.post.js b/server/api/events/[id]/waitlist.post.js index 6930e81..8cfd984 100644 --- a/server/api/events/[id]/waitlist.post.js +++ b/server/api/events/[id]/waitlist.post.js @@ -71,7 +71,7 @@ export default defineEventHandler(async (event) => { const member = await Member.findOne({ email: email.toLowerCase() }); if (member) { memberName = memberName || member.name; - memberLevel = `${member.circle}-${member.contributionTier}`; + memberLevel = `${member.circle}-${member.contributionAmount}`; } // Add to waitlist diff --git a/server/api/helcim/customer.post.js b/server/api/helcim/customer.post.js index db22b2a..4bbcc80 100644 --- a/server/api/helcim/customer.post.js +++ b/server/api/helcim/customer.post.js @@ -29,7 +29,7 @@ export default defineEventHandler(async (event) => { email: body.email, name: body.name, circle: body.circle, - contributionTier: body.contributionTier, + contributionAmount: body.contributionAmount, helcimCustomerId: customerData.id, status: 'pending_payment', agreement: { acceptedAt: new Date() } @@ -46,7 +46,7 @@ export default defineEventHandler(async (event) => { email: member.email, name: member.name, circle: member.circle, - contributionTier: member.contributionTier, + contributionAmount: member.contributionAmount, status: member.status } } diff --git a/server/api/invite/accept.post.js b/server/api/invite/accept.post.js index 6497709..a78764a 100644 --- a/server/api/invite/accept.post.js +++ b/server/api/invite/accept.post.js @@ -43,9 +43,9 @@ export default defineEventHandler(async (event) => { pronouns: body.pronouns || undefined, location: body.location || undefined, circle: body.circle, - contributionTier: body.contributionTier, + contributionAmount: body.contributionAmount, bio: body.motivation || undefined, - status: body.contributionTier === '0' ? 'active' : 'pending_payment', + status: body.contributionAmount === 0 ? 'active' : 'pending_payment', agreement: { acceptedAt: new Date() }, }) @@ -66,7 +66,7 @@ export default defineEventHandler(async (event) => { }) // For free tier, issue session and redirect to welcome - if (body.contributionTier === '0') { + if (body.contributionAmount === 0) { const sessionToken = jwt.sign( { memberId: member._id, email: member.email, tv: member.tokenVersion }, config.jwtSecret, @@ -90,7 +90,7 @@ export default defineEventHandler(async (event) => { email: member.email, name: member.name, circle: member.circle, - contributionTier: member.contributionTier, + contributionAmount: member.contributionAmount, status: member.status, } } @@ -105,7 +105,7 @@ export default defineEventHandler(async (event) => { email: member.email, name: member.name, circle: member.circle, - contributionTier: member.contributionTier, + contributionAmount: member.contributionAmount, status: member.status, } } diff --git a/server/api/members/cancel-subscription.post.js b/server/api/members/cancel-subscription.post.js index b16d54a..a0fada2 100644 --- a/server/api/members/cancel-subscription.post.js +++ b/server/api/members/cancel-subscription.post.js @@ -7,12 +7,12 @@ export default defineEventHandler(async (event) => { const member = await requireAuth(event); // If already on free tier, nothing to cancel - if (member.contributionTier === "0" || !member.helcimSubscriptionId) { + if (member.contributionAmount === 0 || !member.helcimSubscriptionId) { return { success: true, message: "No active subscription to cancel", status: member.status, - contributionTier: member.contributionTier, + contributionAmount: member.contributionAmount, }; } @@ -29,7 +29,7 @@ export default defineEventHandler(async (event) => { { $set: { status: 'pending_payment', - contributionTier: '0', + contributionAmount: 0, helcimSubscriptionId: null, paymentMethod: 'none', subscriptionEndDate: new Date(), @@ -46,7 +46,7 @@ export default defineEventHandler(async (event) => { success: true, message: "Subscription cancelled successfully", status: 'pending_payment', - contributionTier: '0', + contributionAmount: 0, }; } catch (error) { console.error("Error cancelling subscription:", error); diff --git a/server/api/members/create.post.js b/server/api/members/create.post.js index 6f38531..53827b0 100644 --- a/server/api/members/create.post.js +++ b/server/api/members/create.post.js @@ -47,7 +47,7 @@ async function inviteToSlack(member) { member.name, member.email, member.circle, - member.contributionTier, + member.contributionAmount, inviteResult.status ) @@ -128,7 +128,7 @@ export default defineEventHandler(async (event) => { email: member.email, name: member.name, circle: member.circle, - contributionTier: member.contributionTier, + contributionAmount: member.contributionAmount, status: member.status } } diff --git a/server/api/members/profile.patch.js b/server/api/members/profile.patch.js index ea211ab..4cad5e8 100644 --- a/server/api/members/profile.patch.js +++ b/server/api/members/profile.patch.js @@ -67,7 +67,7 @@ export default defineEventHandler(async (event) => { email: member.email, name: member.name, circle: member.circle, - contributionTier: member.contributionTier, + contributionAmount: member.contributionAmount, pronouns: member.pronouns, timeZone: member.timeZone, avatar: member.avatar, diff --git a/server/utils/slack.ts b/server/utils/slack.ts index 2137ba2..f1fd674 100644 --- a/server/utils/slack.ts +++ b/server/utils/slack.ts @@ -181,7 +181,7 @@ export class SlackService { memberName: string, memberEmail: string, circle: string, - contributionTier: string, + contributionAmount: number, invitationStatus: string = "manual_invitation_required", ): Promise { try { @@ -240,7 +240,7 @@ export class SlackService { }, { type: "mrkdwn", - text: `*Contribution:*\n$${contributionTier}/month`, + text: `*Contribution:*\n$${contributionAmount}/month`, }, ], },