WITH next_holiday AS ( SELECT "H"."event" AS "holiday_event", MIN("H"."date") AS "next_holiday_date" FROM "Holiday" "H" WHERE "H"."date" > CURRENT_DATE GROUP BY "H"."event")SELECT DISTINCT ON ("A"."firstName", "next_event_date") "R"."userId", "A"."firstName", "A"."lastName", "R"."event", "U"."email", CASE WHEN "R"."event" = 'BIRTHDAY' THEN CASE WHEN EXTRACT(MONTH FROM "R"."date") < EXTRACT(MONTH FROM CURRENT_DATE) OR (EXTRACT(MONTH FROM "R"."date") = EXTRACT(MONTH FROM CURRENT_DATE) AND EXTRACT(DAY FROM "R"."date") < EXTRACT(DAY FROM CURRENT_DATE)) THEN (EXTRACT(YEAR FROM CURRENT_DATE) + 1) || '-' || EXTRACT(MONTH FROM "R"."date") || '-' || EXTRACT(DAY FROM "R"."date") ELSE EXTRACT(YEAR FROM CURRENT_DATE) || '-' || EXTRACT(MONTH FROM "R"."date") || '-' || EXTRACT(DAY FROM "R"."date") END::DATE WHEN "R"."event" = 'ANNIVERSARY' THEN CASE WHEN EXTRACT(MONTH FROM "R"."date") < EXTRACT(MONTH FROM CURRENT_DATE) OR (EXTRACT(MONTH FROM "R"."date") = EXTRACT(MONTH FROM CURRENT_DATE) AND EXTRACT(DAY FROM "R"."date") < EXTRACT(DAY FROM CURRENT_DATE)) THEN (EXTRACT(YEAR FROM CURRENT_DATE) + 1) || '-' || EXTRACT(MONTH FROM "R"."date") || '-' || EXTRACT(DAY FROM "R"."date") ELSE EXTRACT(YEAR FROM CURRENT_DATE) || '-' || EXTRACT(MONTH FROM "R"."date") || '-' || EXTRACT(DAY FROM "R"."date") END::DATE ELSE "NH"."next_holiday_date" END AS "next_event_date", "A"."state", "R"."createdAt"FROM "ScheduledEvent" "R"LEFT JOIN next_holiday "NH" ON "R"."event" = "NH"."holiday_event"JOIN "Address" "A" ON "R"."userId" = "A"."userId"JOIN "UserProfile" "U" ON "R"."userId" = "U"."id"LEFT JOIN "Subscription" "S" ON "R"."userId" = "S"."userId"WHERE "R"."archived" = FALSE AND "A"."firstName" <> 'Test'ORDER BY "next_event_date";