Merge branch 'dev' into jajaja

# Conflicts:
#	db/postgresql/schema.prisma
#	pnpm-lock.yaml
#	src/app/(main)/websites/[websiteId]/WebsiteDetailsPage.tsx
#	src/app/(main)/websites/[websiteId]/compare/WebsiteComparePage.tsx
#	src/app/api/reports/route.ts
#	src/app/api/websites/[websiteId]/events/series/route.ts
#	src/app/api/websites/[websiteId]/metrics/route.ts
#	src/app/api/websites/[websiteId]/pageviews/route.ts
#	src/app/api/websites/[websiteId]/sessions/stats/route.ts
#	src/app/api/websites/[websiteId]/stats/route.ts
#	src/app/api/websites/[websiteId]/values/route.ts
#	src/components/hooks/useFields.ts
#	src/components/hooks/useFilterParams.ts
#	src/lang/vi-VN.json
#	src/lib/clickhouse.ts
#	src/lib/detect.ts
#	src/lib/prisma.ts
#	src/lib/request.ts
#	src/lib/schema.ts
#	src/lib/types.ts
#	src/queries/sql/events/getEventDataFields.ts
#	src/queries/sql/events/getEventDataProperties.ts
#	src/queries/sql/events/getEventDataStats.ts
#	src/queries/sql/events/getEventDataValues.ts
#	src/queries/sql/events/getEventMetrics.ts
#	src/queries/sql/events/getWebsiteEvents.ts
#	src/queries/sql/getChannelMetrics.ts
#	src/queries/sql/getRealtimeActivity.ts
#	src/queries/sql/getWebsiteStats.ts
#	src/queries/sql/pageviews/getPageviewMetrics.ts
#	src/queries/sql/pageviews/getPageviewStats.ts
#	src/queries/sql/reports/getBreakdown.ts
#	src/queries/sql/sessions/getSessionDataProperties.ts
#	src/queries/sql/sessions/getSessionDataValues.ts
#	src/queries/sql/sessions/getSessionMetrics.ts
#	src/queries/sql/sessions/getSessionStats.ts
#	src/queries/sql/sessions/getWebsiteSessionStats.ts
#	src/queries/sql/sessions/getWebsiteSessions.ts
This commit is contained in:
Mike Cao
2025-07-08 22:03:55 -07:00
49 changed files with 704 additions and 345 deletions

View File

@@ -25,7 +25,7 @@ async function relationalQuery(
filters: QueryFilters,
): Promise<WebsiteSessionStatsData[]> {
const { parseFilters, rawQuery } = prisma;
const { filterQuery, queryParams } = parseFilters({ ...filters, websiteId });
const { filterQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId });
return rawQuery(
`
@@ -36,6 +36,7 @@ async function relationalQuery(
count(distinct session.country) as "countries",
sum(case when website_event.event_type = 2 then 1 else 0 end) as "events"
from website_event
${cohortQuery}
join session on website_event.session_id = session.session_id
where website_event.website_id = {{websiteId::uuid}}
and website_event.created_at between {{startDate}} and {{endDate}}
@@ -50,7 +51,7 @@ async function clickhouseQuery(
filters: QueryFilters,
): Promise<WebsiteSessionStatsData[]> {
const { rawQuery, parseFilters } = clickhouse;
const { filterQuery, queryParams } = parseFilters({ ...filters, websiteId });
const { filterQuery, cohortQuery, queryParams } = parseFilters({ ...filters, websiteId });
return rawQuery(
`
@@ -61,6 +62,7 @@ async function clickhouseQuery(
uniq(country) as "countries",
sum(length(event_name)) as "events"
from umami.website_event_stats_hourly "website_event"
${cohortQuery}
where website_id = {websiteId:UUID}
and created_at between {startDate:DateTime64} and {endDate:DateTime64}
${filterQuery}