import clickhouse from 'lib/clickhouse'; import { CLICKHOUSE, PRISMA, runQuery } from 'lib/db'; export function getEventUsage(...args: [websiteIds: string[], startDate: Date, endDate: Date]) { return runQuery({ [PRISMA]: () => relationalQuery(...args), [CLICKHOUSE]: () => clickhouseQuery(...args), }); } function relationalQuery(websiteIds: string[], startDate: Date, endDate: Date) { throw new Error('Not Implemented'); } function clickhouseQuery(websiteIds: string[], startDate: Date, endDate: Date) { const { rawQuery } = clickhouse; return rawQuery( `select website_id as websiteId, count(*) as count from website_event where created_at between {startDate:DateTime64} and {endDate:DateTime64} and website_id in {websiteIds:Array(UUID)} group by website_id`, { websiteIds, startDate, endDate, }, ); }