Skip to content

fix: replace bookingTimeStatus with bookingTimeStatusDenormalized #21028

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
cce879f
test: Add unit tests for buildBaseWhereCondition function
devin-ai-integration[bot] May 7, 2025
2b8c7a1
refactor: Export buildBaseWhereCondition function instead of copying it
devin-ai-integration[bot] May 7, 2025
4c90b81
refactor: Remove implementation detail checks from tests
devin-ai-integration[bot] May 7, 2025
ecd2c86
test: Fix tests to match actual function behavior
devin-ai-integration[bot] May 7, 2025
2e10d45
test: Fix test issues with buildBaseWhereCondition
devin-ai-integration[bot] May 7, 2025
e91a6ed
test: Update tests to match actual function behavior
devin-ai-integration[bot] May 7, 2025
0604992
fix: Address security issues in buildBaseWhereCondition function
devin-ai-integration[bot] May 7, 2025
cdf4c42
refactor: Simplify buildBaseWhereCondition function
devin-ai-integration[bot] May 9, 2025
be39d5c
refactor: Simplify code and remove isEmptyResponse property
devin-ai-integration[bot] May 9, 2025
af29acd
refactor: Use array of conditions approach for buildBaseWhereCondition
devin-ai-integration[bot] May 9, 2025
057c4d5
refactor: Make buildBaseWhereCondition implementation consistent and …
devin-ai-integration[bot] May 9, 2025
fb6227b
fix: Fix incorrect usage of buildBaseWhereCondition function
devin-ai-integration[bot] May 9, 2025
a4cd56f
chore: Revert yarn.lock changes
devin-ai-integration[bot] May 9, 2025
44c21a7
fix: Comment out non-existent Sentry API method to fix type error
devin-ai-integration[bot] May 9, 2025
78f1401
Revert "fix: Comment out non-existent Sentry API method to fix type e…
devin-ai-integration[bot] May 9, 2025
3d34bd2
remove unnecessary if-statement
eunjae-lee May 9, 2025
c561971
fix: replace bookingTimeStatus with bookingTimeStatusDenormalized
eunjae-lee May 12, 2025
e5c0228
change column
eunjae-lee May 12, 2025
9fbcb75
Merge branch 'main' into eunjae/cal-5692-use-bookingtimestatusdenorma…
eunjae-lee May 20, 2025
f03650b
Merge branch 'main' into eunjae/cal-5692-use-bookingtimestatusdenorma…
eunjae-lee May 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions apps/web/app/api/cron/monthlyDigestEmail/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ async function postHandler(request: NextRequest) {
const userIdsFromTeams = team.members.map((u) => u.userId);

// Booking Events
const whereConditional: Prisma.BookingTimeStatusWhereInput = {
const whereConditional: Prisma.BookingTimeStatusDenormalizedWhereInput = {
OR: [
{
teamId: team.id,
Expand All @@ -122,7 +122,7 @@ async function postHandler(request: NextRequest) {
EventData["Cancelled"] = countGroupedByStatus["cancelled"];

// Most Booked Event Type
const bookingWhere: Prisma.BookingTimeStatusWhereInput = {
const bookingWhere: Prisma.BookingTimeStatusDenormalizedWhereInput = {
createdAt: {
gte: dayjs(firstDateOfMonth).startOf("day").toDate(),
lte: dayjs(new Date()).endOf("day").toDate(),
Expand All @@ -141,7 +141,7 @@ async function postHandler(request: NextRequest) {
],
};

const bookingsFromSelected = await prisma.bookingTimeStatus.groupBy({
const bookingsFromSelected = await prisma.bookingTimeStatusDenormalized.groupBy({
by: ["eventTypeId"],
where: bookingWhere,
_count: {
Expand Down Expand Up @@ -234,7 +234,7 @@ async function postHandler(request: NextRequest) {
});

// Most booked members
const bookingsFromTeam = await prisma.bookingTimeStatus.groupBy({
const bookingsFromTeam = await prisma.bookingTimeStatusDenormalized.groupBy({
by: ["userId"],
where: bookingWhere,
_count: {
Expand Down
30 changes: 15 additions & 15 deletions packages/features/insights/server/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ function buildSqlCondition(condition: any): string {

class EventsInsights {
static countGroupedByStatusForRanges = async (
whereConditional: Prisma.BookingTimeStatusWhereInput,
whereConditional: Prisma.BookingTimeStatusDenormalizedWhereInput,
startDate: Dayjs,
endDate: Dayjs,
timeView: "week" | "month" | "year" | "day"
Expand Down Expand Up @@ -95,9 +95,9 @@ class EventsInsights {
"timeStatus",
"noShowHost"
FROM
"BookingTimeStatus"
"BookingTimeStatusDenormalized"
JOIN
"Attendee" "a" ON "a"."bookingId" = "BookingTimeStatus"."id"
"Attendee" "a" ON "a"."bookingId" = "BookingTimeStatusDenormalized"."id"
WHERE
"createdAt" BETWEEN ${formattedStartDate}::timestamp AND ${formattedEndDate}::timestamp
AND ${Prisma.raw(whereClause)}
Expand Down Expand Up @@ -185,8 +185,8 @@ class EventsInsights {
return aggregate;
};

static getTotalNoShowGuests = async (where: Prisma.BookingTimeStatusWhereInput) => {
const bookings = await prisma.bookingTimeStatus.findMany({
static getTotalNoShowGuests = async (where: Prisma.BookingTimeStatusDenormalizedWhereInput) => {
const bookings = await prisma.bookingTimeStatusDenormalized.findMany({
where,
select: {
id: true,
Expand All @@ -206,8 +206,8 @@ class EventsInsights {
return totalNoShowGuests;
};

static countGroupedByStatus = async (where: Prisma.BookingTimeStatusWhereInput) => {
const data = await prisma.bookingTimeStatus.groupBy({
static countGroupedByStatus = async (where: Prisma.BookingTimeStatusDenormalizedWhereInput) => {
const data = await prisma.bookingTimeStatusDenormalized.groupBy({
where,
by: ["timeStatus", "noShowHost"],
_count: {
Expand Down Expand Up @@ -237,8 +237,8 @@ class EventsInsights {
);
};

static getAverageRating = async (whereConditional: Prisma.BookingTimeStatusWhereInput) => {
return await prisma.bookingTimeStatus.aggregate({
static getAverageRating = async (whereConditional: Prisma.BookingTimeStatusDenormalizedWhereInput) => {
return await prisma.bookingTimeStatusDenormalized.aggregate({
_avg: {
rating: true,
},
Expand All @@ -251,8 +251,8 @@ class EventsInsights {
});
};

static getTotalCSAT = async (whereConditional: Prisma.BookingTimeStatusWhereInput) => {
const result = await prisma.bookingTimeStatus.findMany({
static getTotalCSAT = async (whereConditional: Prisma.BookingTimeStatusDenormalizedWhereInput) => {
const result = await prisma.bookingTimeStatusDenormalized.findMany({
where: {
...whereConditional,
rating: {
Expand Down Expand Up @@ -385,11 +385,11 @@ class EventsInsights {
const limit = props.limit ?? 100; // Default batch size
const offset = props.offset ?? 0;

const totalCountPromise = prisma.bookingTimeStatus.count({
const totalCountPromise = prisma.bookingTimeStatusDenormalized.count({
where: whereConditional,
});

const csvDataPromise = prisma.bookingTimeStatus.findMany({
const csvDataPromise = prisma.bookingTimeStatusDenormalized.findMany({
select: {
id: true,
uid: true,
Expand All @@ -402,7 +402,7 @@ class EventsInsights {
endTime: true,
paid: true,
userEmail: true,
username: true,
userUsername: true,
rating: true,
ratingFeedback: true,
noShowHost: true,
Expand Down Expand Up @@ -496,7 +496,7 @@ class EventsInsights {
} = props;

// Obtain the where conditional
let whereConditional: Prisma.BookingTimeStatusWhereInput = {};
let whereConditional: Prisma.BookingTimeStatusDenormalizedWhereInput = {};

if (startDate && endDate) {
whereConditional.createdAt = {
Expand Down
24 changes: 12 additions & 12 deletions packages/features/insights/server/trpc-router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ export const buildBaseWhereCondition = async ({
isAll,
ctx,
}: BuildBaseWhereConditionType): Promise<{
whereCondition: Prisma.BookingTimeStatusWhereInput;
whereCondition: Prisma.BookingTimeStatusDenormalizedWhereInput;
}> => {
const conditions: Prisma.BookingTimeStatusWhereInput[] = [];
const conditions: Prisma.BookingTimeStatusDenormalizedWhereInput[] = [];

// EventType Filter
if (eventTypeId) {
Expand Down Expand Up @@ -152,7 +152,7 @@ export const buildBaseWhereCondition = async ({
});
}

let whereCondition: Prisma.BookingTimeStatusWhereInput = {};
let whereCondition: Prisma.BookingTimeStatusDenormalizedWhereInput = {};

if (conditions.length === 1) {
whereCondition = conditions[0];
Expand Down Expand Up @@ -597,7 +597,7 @@ export const insightsRouter = router({
},
};

const bookingsFromSelected = await ctx.insightsDb.bookingTimeStatus.groupBy({
const bookingsFromSelected = await ctx.insightsDb.bookingTimeStatusDenormalized.groupBy({
by: ["eventTypeId"],
where: bookingWhere,
_count: {
Expand Down Expand Up @@ -734,7 +734,7 @@ export const insightsRouter = router({

const startOfEndOf = timeView === "year" ? "year" : timeView === "month" ? "month" : "week";

const allBookings = await ctx.insightsDb.bookingTimeStatus.findMany({
const allBookings = await ctx.insightsDb.bookingTimeStatusDenormalized.findMany({
select: {
eventLength: true,
createdAt: true,
Expand Down Expand Up @@ -804,7 +804,7 @@ export const insightsRouter = router({
status: "CANCELLED",
};

const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatus.groupBy({
const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatusDenormalized.groupBy({
by: ["userId"],
where: bookingWhere,
_count: {
Expand Down Expand Up @@ -886,7 +886,7 @@ export const insightsRouter = router({
},
};

const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatus.groupBy({
const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatusDenormalized.groupBy({
by: ["userId"],
where: bookingWhere,
_count: {
Expand Down Expand Up @@ -967,7 +967,7 @@ export const insightsRouter = router({
},
};

const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatus.groupBy({
const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatusDenormalized.groupBy({
by: ["userId"],
where: bookingWhere,
_count: {
Expand Down Expand Up @@ -1262,7 +1262,7 @@ export const insightsRouter = router({
];
}

const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatus.findMany({
const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatusDenormalized.findMany({
where: bookingWhere,
orderBy: {
endTime: "desc",
Expand Down Expand Up @@ -1339,7 +1339,7 @@ export const insightsRouter = router({
noShowHost: true,
};

const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatus.groupBy({
const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatusDenormalized.groupBy({
by: ["userId"],
where: bookingWhere,
_count: {
Expand Down Expand Up @@ -1417,7 +1417,7 @@ export const insightsRouter = router({
rating: { not: null },
};

const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatus.groupBy({
const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatusDenormalized.groupBy({
by: ["userId"],
where: bookingWhere,
_avg: {
Expand Down Expand Up @@ -1495,7 +1495,7 @@ export const insightsRouter = router({
rating: { not: null },
};

const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatus.groupBy({
const bookingsFromTeam = await ctx.insightsDb.bookingTimeStatusDenormalized.groupBy({
by: ["userId"],
where: bookingWhere,
_avg: {
Expand Down
Loading