From 53523ed3db849bff1f2319bc6468a700b078ebc1 Mon Sep 17 00:00:00 2001 From: emma Date: Sun, 7 May 2023 13:47:39 -0400 Subject: [PATCH] allow saving bool values into a separate bool field --- db/clickhouse/schema.sql | 1 + db/mysql/schema.prisma | 9 +++++---- db/postgresql/schema.prisma | 9 +++++---- queries/analytics/eventData/saveEventData.ts | 10 ++++------ 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/db/clickhouse/schema.sql b/db/clickhouse/schema.sql index 77176413..c6445318 100644 --- a/db/clickhouse/schema.sql +++ b/db/clickhouse/schema.sql @@ -104,6 +104,7 @@ CREATE TABLE umami.event_data event_string_value Nullable(String), event_numeric_value Nullable(Decimal64(4)), --922337203685477.5625 event_date_value Nullable(DateTime('UTC')), + event_bool_value Nullable(Boolean), event_data_type UInt32, created_at DateTime('UTC') ) diff --git a/db/mysql/schema.prisma b/db/mysql/schema.prisma index 6455c8c0..ca5d3de9 100644 --- a/db/mysql/schema.prisma +++ b/db/mysql/schema.prisma @@ -14,7 +14,7 @@ model User { password String @db.VarChar(60) role String @map("role") @db.VarChar(50) createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) - updatedAt DateTime? @map("updated_at") @updatedAt @db.Timestamp(0) + updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0) deletedAt DateTime? @map("deleted_at") @db.Timestamp(0) website Website[] @@ -53,7 +53,7 @@ model Website { resetAt DateTime? @map("reset_at") @db.Timestamp(0) userId String? @map("user_id") @db.VarChar(36) createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) - updatedAt DateTime? @map("updated_at") @updatedAt @db.Timestamp(0) + updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0) deletedAt DateTime? @map("deleted_at") @db.Timestamp(0) user User? @relation(fields: [userId], references: [id]) @@ -99,6 +99,7 @@ model EventData { eventStringValue String? @map("event_string_value") @db.VarChar(500) eventNumericValue Decimal? @map("event_numeric_value") @db.Decimal(19, 4) eventDateValue DateTime? @map("event_date_value") @db.Timestamp(0) + eventBoolValue Boolean? @map("event_bool_value") eventDataType Int @map("event_data_type") @db.UnsignedInt createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) @@ -117,7 +118,7 @@ model Team { name String @db.VarChar(50) accessCode String? @unique @map("access_code") @db.VarChar(50) createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) - updatedAt DateTime? @map("updated_at") @updatedAt @db.Timestamp(0) + updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0) teamUser TeamUser[] teamWebsite TeamWebsite[] @@ -132,7 +133,7 @@ model TeamUser { userId String @map("user_id") @db.VarChar(36) role String @map("role") @db.VarChar(50) createdAt DateTime? @default(now()) @map("created_at") @db.Timestamp(0) - updatedAt DateTime? @map("updated_at") @updatedAt @db.Timestamp(0) + updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamp(0) team Team @relation(fields: [teamId], references: [id]) user User @relation(fields: [userId], references: [id]) diff --git a/db/postgresql/schema.prisma b/db/postgresql/schema.prisma index b336bce4..a50a4919 100644 --- a/db/postgresql/schema.prisma +++ b/db/postgresql/schema.prisma @@ -14,7 +14,7 @@ model User { password String @db.VarChar(60) role String @map("role") @db.VarChar(50) createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @updatedAt @db.Timestamptz(6) + updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz(6) deletedAt DateTime? @map("deleted_at") @db.Timestamptz(6) website Website[] @@ -53,7 +53,7 @@ model Website { resetAt DateTime? @map("reset_at") @db.Timestamptz(6) userId String? @map("user_id") @db.Uuid createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @updatedAt @db.Timestamptz(6) + updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz(6) deletedAt DateTime? @map("deleted_at") @db.Timestamptz(6) user User? @relation(fields: [userId], references: [id]) @@ -99,6 +99,7 @@ model EventData { eventStringValue String? @map("event_string_value") @db.VarChar(500) eventNumericValue Decimal? @map("event_numeric_value") @db.Decimal(19, 4) eventDateValue DateTime? @map("event_date_value") @db.Timestamptz(6) + eventBoolValue Boolean? @map("event_bool_value") @db.Boolean eventDataType Int @map("event_data_type") @db.Integer createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) @@ -116,7 +117,7 @@ model Team { name String @db.VarChar(50) accessCode String? @unique @map("access_code") @db.VarChar(50) createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @updatedAt @db.Timestamptz(6) + updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz(6) teamUser TeamUser[] teamWebsite TeamWebsite[] @@ -131,7 +132,7 @@ model TeamUser { userId String @map("user_id") @db.Uuid role String @map("role") @db.VarChar(50) createdAt DateTime? @default(now()) @map("created_at") @db.Timestamptz(6) - updatedAt DateTime? @map("updated_at") @updatedAt @db.Timestamptz(6) + updatedAt DateTime? @updatedAt @map("updated_at") @db.Timestamptz(6) team Team @relation(fields: [teamId], references: [id]) user User @relation(fields: [userId], references: [id]) diff --git a/queries/analytics/eventData/saveEventData.ts b/queries/analytics/eventData/saveEventData.ts index 90e63565..43168be7 100644 --- a/queries/analytics/eventData/saveEventData.ts +++ b/queries/analytics/eventData/saveEventData.ts @@ -38,13 +38,12 @@ async function relationalQuery(data: { websiteId, eventKey: a.key, eventStringValue: - a.eventDataType === EVENT_DATA_TYPE.string || - a.eventDataType === EVENT_DATA_TYPE.boolean || - a.eventDataType === EVENT_DATA_TYPE.array + a.eventDataType === EVENT_DATA_TYPE.string || a.eventDataType === EVENT_DATA_TYPE.array ? a.value : null, eventNumericValue: a.eventDataType === EVENT_DATA_TYPE.number ? a.value : null, eventDateValue: a.eventDataType === EVENT_DATA_TYPE.date ? new Date(a.value) : null, + eventBoolValue: a.eventDataType === EVENT_DATA_TYPE.boolean ? a.value : null, eventDataType: a.eventDataType, })); @@ -76,13 +75,12 @@ async function clickhouseQuery(data: { event_name: eventName, event_key: a.key, event_string_value: - a.eventDataType === EVENT_DATA_TYPE.string || - a.eventDataType === EVENT_DATA_TYPE.boolean || - a.eventDataType === EVENT_DATA_TYPE.array + a.eventDataType === EVENT_DATA_TYPE.string || a.eventDataType === EVENT_DATA_TYPE.array ? a.value : null, event_numeric_value: a.eventDataType === EVENT_DATA_TYPE.number ? a.value : null, event_date_value: a.eventDataType === EVENT_DATA_TYPE.date ? getDateFormat(a.value) : null, + event_bool_value: a.eventDataType === EVENT_DATA_TYPE.boolean ? a.value : null, event_data_type: a.eventDataType, created_at: createdAt, }));