Fix reports crash on client churn risk query #50

Merged
ghost merged 1 commits from fix/reports-clients-churn-query into main 2026-03-18 13:26:26 +00:00
+2 -1
View File
@@ -279,6 +279,7 @@ reportsRouter.get("/clients", async (c) => {
// Clients with no appointment in last 90 days (churn risk) // Clients with no appointment in last 90 days (churn risk)
const ninetyDaysAgo = new Date(); const ninetyDaysAgo = new Date();
ninetyDaysAgo.setDate(ninetyDaysAgo.getDate() - 90); ninetyDaysAgo.setDate(ninetyDaysAgo.getDate() - 90);
const ninetyDaysAgoISO = ninetyDaysAgo.toISOString();
const churnRisk = await db const churnRisk = await db
.select({ .select({
@@ -290,7 +291,7 @@ reportsRouter.get("/clients", async (c) => {
.leftJoin(appointments, eq(appointments.clientId, clients.id)) .leftJoin(appointments, eq(appointments.clientId, clients.id))
.groupBy(clients.id, clients.name) .groupBy(clients.id, clients.name)
.having( .having(
sql`MAX(${appointments.startTime}) < ${ninetyDaysAgo} OR MAX(${appointments.startTime}) IS NULL` sql`MAX(${appointments.startTime}) < ${ninetyDaysAgoISO}::timestamptz OR MAX(${appointments.startTime}) IS NULL`
) )
.orderBy(sql`MAX(${appointments.startTime}) ASC NULLS FIRST`); .orderBy(sql`MAX(${appointments.startTime}) ASC NULLS FIRST`);