Changed TrainerId to TraineruserId
This commit is contained in:
parent
d7bf910baa
commit
ded8e15918
@ -406,14 +406,14 @@ async function getTrainerName(trainerId: string): Promise<string> {
|
||||
.collection("trainer_profiles")
|
||||
.doc(trainerId)
|
||||
.get();
|
||||
|
||||
|
||||
if (!doc.exists) {
|
||||
const userDoc = await app
|
||||
.firestore()
|
||||
.collection("users")
|
||||
.doc(trainerId)
|
||||
.get();
|
||||
|
||||
|
||||
if (userDoc.exists) {
|
||||
const userData = userDoc.data();
|
||||
return userData?.name || userData?.displayName || "Unknown Trainer";
|
||||
@ -428,7 +428,7 @@ async function getTrainerName(trainerId: string): Promise<string> {
|
||||
const lastName = fields["last-name"] || "";
|
||||
return `${firstName} ${lastName}`.trim() || "Unknown Trainer";
|
||||
}
|
||||
|
||||
|
||||
return data?.name || data?.displayName || "Unknown Trainer";
|
||||
} catch (error) {
|
||||
logger.error(`Error getting trainer name for ${trainerId}:`, error);
|
||||
@ -447,9 +447,9 @@ async function processExpiredMembership(
|
||||
});
|
||||
|
||||
logger.info(`Marked membership ${membershipId} as EXPIRED`);
|
||||
|
||||
|
||||
await sendPlanExpiredNotification(membershipId, membershipData);
|
||||
|
||||
|
||||
await sendTrainerNotifications(membershipId, membershipData, "expired");
|
||||
} catch (error) {
|
||||
logger.error(`Error processing membership ${membershipId}:`, error);
|
||||
@ -462,9 +462,9 @@ async function processExpiringMembership(
|
||||
): Promise<void> {
|
||||
try {
|
||||
logger.info(`Processing expiring membership ${membershipId}`);
|
||||
|
||||
|
||||
await sendPlanExpiringNotification(membershipId, membershipData);
|
||||
|
||||
|
||||
await sendTrainerNotifications(membershipId, membershipData, "expiring");
|
||||
} catch (error) {
|
||||
logger.error(
|
||||
@ -474,16 +474,44 @@ async function processExpiringMembership(
|
||||
}
|
||||
}
|
||||
|
||||
async function getTrainerUserId(trainerId: string): Promise<string> {
|
||||
try {
|
||||
const trainerDoc = await app
|
||||
.firestore()
|
||||
.collection("trainer_profiles")
|
||||
.doc(trainerId)
|
||||
.get();
|
||||
|
||||
if (!trainerDoc.exists) {
|
||||
throw new Error(`Trainer profile not found for ID: ${trainerId}`);
|
||||
}
|
||||
|
||||
const trainerData = trainerDoc.data();
|
||||
if (!trainerData?.userId) {
|
||||
throw new Error(`userId not found in trainer profile: ${trainerId}`);
|
||||
}
|
||||
|
||||
return trainerData.userId;
|
||||
} catch (error) {
|
||||
logger.error(`Error getting userId for trainer ${trainerId}:`, error);
|
||||
return trainerId;
|
||||
}
|
||||
}
|
||||
|
||||
async function sendTrainerNotifications(
|
||||
membershipId: string,
|
||||
membershipData: MembershipData,
|
||||
notificationType: "expired" | "expiring"
|
||||
): Promise<void> {
|
||||
try {
|
||||
const trainerAssignments = await getTrainerAssignmentsForMembership(membershipId);
|
||||
|
||||
const trainerAssignments = await getTrainerAssignmentsForMembership(
|
||||
membershipId
|
||||
);
|
||||
|
||||
if (trainerAssignments.length === 0) {
|
||||
logger.info(`No trainer assignments found for membership ${membershipId}`);
|
||||
logger.info(
|
||||
`No trainer assignments found for membership ${membershipId}`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -519,13 +547,17 @@ async function sendTrainerNotifications(
|
||||
|
||||
try {
|
||||
const trainerName = await getTrainerName(assignment.trainerId);
|
||||
|
||||
const notifType = notificationType === "expired" ? "trainer_client_plan_expired" : "trainer_client_plan_expiring";
|
||||
const trainerUserId = await getTrainerUserId(assignment.trainerId);
|
||||
|
||||
const notifType =
|
||||
notificationType === "expired"
|
||||
? "trainer_client_plan_expired"
|
||||
: "trainer_client_plan_expiring";
|
||||
const existing = await app
|
||||
.firestore()
|
||||
.collection("notifications")
|
||||
.where("type", "==", notifType)
|
||||
.where("recipientId", "==", assignment.trainerId)
|
||||
.where("recipientId", "==", trainerUserId)
|
||||
.where("data.membershipId", "==", membershipId)
|
||||
.where(
|
||||
"data.expiryDate",
|
||||
@ -546,7 +578,7 @@ async function sendTrainerNotifications(
|
||||
|
||||
const notificationData: any = {
|
||||
senderId: "system",
|
||||
recipientId: assignment.trainerId,
|
||||
recipientId: trainerUserId,
|
||||
type: notifType,
|
||||
notificationSent: false,
|
||||
timestamp: admin.firestore.FieldValue.serverTimestamp(),
|
||||
@ -799,4 +831,4 @@ async function getGymName(gymId: string): Promise<string> {
|
||||
logger.error(`Error getting gym name for gym ${gymId}:`, error);
|
||||
return "Unknown Gym";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user