diff --git a/functions/src/memberCache/memberCache.ts b/functions/src/memberCache/memberCache.ts index 95cdd2e..9fbc8c0 100644 --- a/functions/src/memberCache/memberCache.ts +++ b/functions/src/memberCache/memberCache.ts @@ -11,9 +11,11 @@ interface MembershipData { gymId?: string; userId?: string; status?: string; + subscriptionId?: string; subscription?: { hasPersonalTraining?: boolean; frequency?: string; + price?: number; [key: string]: any; }; isPartialPayment?: boolean; @@ -45,6 +47,7 @@ interface MinimalCacheEntry { hasPersonalTraining: boolean; hasPartialPayment: boolean; remainingAmount: number; + subscriptionId?: string | null; lastUpdated: string; } @@ -110,7 +113,7 @@ export const getMemberCache = onRequest( members: [], totalMembers: 0, lastUpdated: new Date().toISOString(), - cacheVersion: "3.0", + cacheVersion: "3.1", }); } } catch (error) { @@ -197,7 +200,7 @@ export const updateMemberCache = onRequest( members, totalMembers: members.length, lastUpdated: new Date().toISOString(), - cacheVersion: "3.0", + cacheVersion: "3.1", }; await saveCacheToStorage(gymId, jsonData); @@ -252,7 +255,7 @@ async function fetchAllMinimalMembers( ); return null; } - return await generateMinimalCacheEntry(userId, doc.id, membershipData); + return await generateMinimalCacheEntry(userId, doc.id, membershipData, gymId); } catch (error) { logger.error(`Error processing member ${doc.id}:`, error); return null; @@ -316,7 +319,8 @@ async function updateSpecificMembers( return await generateMinimalCacheEntry( userId, doc.id, - membershipData + membershipData, + gymId ); } catch (error) { logger.error(`Error processing member ${doc.id}:`, error); @@ -364,7 +368,8 @@ async function saveCacheToStorage( async function generateMinimalCacheEntry( userId: string, membershipId: string, - membershipData: MembershipData + membershipData: MembershipData, + gymId: string ): Promise { try { let firstName = ""; @@ -429,6 +434,7 @@ async function generateMinimalCacheEntry( membershipData.subscription?.hasPersonalTraining === true, hasPartialPayment, remainingAmount: remaining, + subscriptionId: membershipData.subscriptionId || null, lastUpdated: new Date().toISOString(), };