From c72111b06c3dce7749ee0ea931779d9d71a11c92 Mon Sep 17 00:00:00 2001 From: Dobrunia Kostrigin <48620984+Dobrunia@users.noreply.github.com> Date: Wed, 10 Jun 2026 19:02:57 +0300 Subject: [PATCH 1/5] init --- index.ts | 2 ++ src/dbScheme/promoCode.ts | 58 ++++++++++++++++++++++++++++++++++ src/dbScheme/promoCodeUsage.ts | 32 +++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 src/dbScheme/promoCode.ts create mode 100644 src/dbScheme/promoCodeUsage.ts diff --git a/index.ts b/index.ts index 4b2b619..a6e89e9 100644 --- a/index.ts +++ b/index.ts @@ -24,6 +24,8 @@ export * from './src/dbScheme/notificationsChannelSettings'; export * from './src/dbScheme/membership'; export * from './src/dbScheme/userProjectsLastVisit'; export * from './src/dbScheme/plan'; +export * from './src/dbScheme/promoCode'; +export * from './src/dbScheme/promoCodeUsage'; export * from './src/dbScheme/project'; export * from './src/dbScheme/projectNotificationsRule'; export * from './src/dbScheme/release'; diff --git a/src/dbScheme/promoCode.ts b/src/dbScheme/promoCode.ts new file mode 100644 index 0000000..66cbb82 --- /dev/null +++ b/src/dbScheme/promoCode.ts @@ -0,0 +1,58 @@ +import type { ObjectId } from 'bson'; + +/** + * Promo code representation in DataBase + */ +export interface PromoCodeDBScheme { + /** + * Promo code id + */ + _id: ObjectId; + + /** + * Normalized promo code value + * @example HAWK-2026 + */ + code: string; + + /** + * Tariff plan assigned by this promo code + */ + planId: ObjectId; + + /** + * Maximum total usages count + * @example 100 + */ + limit?: number; + + /** + * Date before which promo code cannot be used + * @example 2026-01-01T00:00:00.000Z + */ + startsAt?: Date; + + /** + * Date after which promo code cannot be used + * @example 2026-12-31T23:59:59.000Z + */ + expiresAt?: Date; + + /** + * Date when promo code was created + * @example 2026-06-10T12:00:00.000Z + */ + createdAt: Date; + + /** + * Date when promo code was updated + * @example 2026-06-10T12:00:00.000Z + */ + updatedAt: Date; + + /** + * User or system id that created promo code + * @example 507f1f77bcf86cd799439013 + */ + createdBy?: string; +} diff --git a/src/dbScheme/promoCodeUsage.ts b/src/dbScheme/promoCodeUsage.ts new file mode 100644 index 0000000..bddae20 --- /dev/null +++ b/src/dbScheme/promoCodeUsage.ts @@ -0,0 +1,32 @@ +import type { ObjectId } from 'bson'; + +/** + * Promo code usage representation in DataBase + */ +export interface PromoCodeUsageDBScheme { + /** + * Promo code usage id + */ + _id: ObjectId; + + /** + * Applied promo code id + */ + promoCodeId: ObjectId; + + /** + * User who applied promo code + */ + userId: string; + + /** + * Workspace where promo code was applied + */ + workspaceId: ObjectId; + + /** + * Date when promo code was applied + * @example 2026-06-10T12:30:00.000Z + */ + appliedAt: Date; +} From 0476fa3e59f8b5657b260ee3528e9bda9dfe5a9b Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 16:05:13 +0000 Subject: [PATCH 2/5] Bump version up to 0.6.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ab2db1d..39e641a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hawk.so/types", - "version": "0.6.0-rc.2", + "version": "0.6.0", "description": "TypeScript definitions for Hawk", "types": "build/index.d.ts", "main": "build/index.js", From f82f4ad3c1e2966354533a0b240204e15beb7d67 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 16:05:16 +0000 Subject: [PATCH 3/5] Lint and build --- build/index.d.ts | 2 ++ build/index.js | 2 ++ build/src/dbScheme/promoCode.d.ts | 49 ++++++++++++++++++++++++++ build/src/dbScheme/promoCode.js | 2 ++ build/src/dbScheme/promoCodeUsage.d.ts | 27 ++++++++++++++ build/src/dbScheme/promoCodeUsage.js | 2 ++ 6 files changed, 84 insertions(+) create mode 100644 build/src/dbScheme/promoCode.d.ts create mode 100644 build/src/dbScheme/promoCode.js create mode 100644 build/src/dbScheme/promoCodeUsage.d.ts create mode 100644 build/src/dbScheme/promoCodeUsage.js diff --git a/build/index.d.ts b/build/index.d.ts index 993c514..fd335d1 100644 --- a/build/index.d.ts +++ b/build/index.d.ts @@ -19,6 +19,8 @@ export * from './src/dbScheme/notificationsChannelSettings'; export * from './src/dbScheme/membership'; export * from './src/dbScheme/userProjectsLastVisit'; export * from './src/dbScheme/plan'; +export * from './src/dbScheme/promoCode'; +export * from './src/dbScheme/promoCodeUsage'; export * from './src/dbScheme/project'; export * from './src/dbScheme/projectNotificationsRule'; export * from './src/dbScheme/release'; diff --git a/build/index.js b/build/index.js index e4bed59..9a50d79 100644 --- a/build/index.js +++ b/build/index.js @@ -35,6 +35,8 @@ __exportStar(require("./src/dbScheme/notificationsChannelSettings"), exports); __exportStar(require("./src/dbScheme/membership"), exports); __exportStar(require("./src/dbScheme/userProjectsLastVisit"), exports); __exportStar(require("./src/dbScheme/plan"), exports); +__exportStar(require("./src/dbScheme/promoCode"), exports); +__exportStar(require("./src/dbScheme/promoCodeUsage"), exports); __exportStar(require("./src/dbScheme/project"), exports); __exportStar(require("./src/dbScheme/projectNotificationsRule"), exports); __exportStar(require("./src/dbScheme/release"), exports); diff --git a/build/src/dbScheme/promoCode.d.ts b/build/src/dbScheme/promoCode.d.ts new file mode 100644 index 0000000..3ac692b --- /dev/null +++ b/build/src/dbScheme/promoCode.d.ts @@ -0,0 +1,49 @@ +import type { ObjectId } from 'bson'; +/** + * Promo code representation in DataBase + */ +export interface PromoCodeDBScheme { + /** + * Promo code id + */ + _id: ObjectId; + /** + * Normalized promo code value + * @example HAWK-2026 + */ + code: string; + /** + * Tariff plan assigned by this promo code + */ + planId: ObjectId; + /** + * Maximum total usages count + * @example 100 + */ + limit?: number; + /** + * Date before which promo code cannot be used + * @example 2026-01-01T00:00:00.000Z + */ + startsAt?: Date; + /** + * Date after which promo code cannot be used + * @example 2026-12-31T23:59:59.000Z + */ + expiresAt?: Date; + /** + * Date when promo code was created + * @example 2026-06-10T12:00:00.000Z + */ + createdAt: Date; + /** + * Date when promo code was updated + * @example 2026-06-10T12:00:00.000Z + */ + updatedAt: Date; + /** + * User or system id that created promo code + * @example 507f1f77bcf86cd799439013 + */ + createdBy?: string; +} diff --git a/build/src/dbScheme/promoCode.js b/build/src/dbScheme/promoCode.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/build/src/dbScheme/promoCode.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/build/src/dbScheme/promoCodeUsage.d.ts b/build/src/dbScheme/promoCodeUsage.d.ts new file mode 100644 index 0000000..c292930 --- /dev/null +++ b/build/src/dbScheme/promoCodeUsage.d.ts @@ -0,0 +1,27 @@ +import type { ObjectId } from 'bson'; +/** + * Promo code usage representation in DataBase + */ +export interface PromoCodeUsageDBScheme { + /** + * Promo code usage id + */ + _id: ObjectId; + /** + * Applied promo code id + */ + promoCodeId: ObjectId; + /** + * User who applied promo code + */ + userId: string; + /** + * Workspace where promo code was applied + */ + workspaceId: ObjectId; + /** + * Date when promo code was applied + * @example 2026-06-10T12:30:00.000Z + */ + appliedAt: Date; +} diff --git a/build/src/dbScheme/promoCodeUsage.js b/build/src/dbScheme/promoCodeUsage.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/build/src/dbScheme/promoCodeUsage.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); From 5b9e94274bb39a4b417e36a2d4199fe21d5dec14 Mon Sep 17 00:00:00 2001 From: Dobrunia Kostrigin <48620984+Dobrunia@users.noreply.github.com> Date: Wed, 10 Jun 2026 19:06:56 +0300 Subject: [PATCH 4/5] version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 39e641a..b719a5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hawk.so/types", - "version": "0.6.0", + "version": "0.6.1", "description": "TypeScript definitions for Hawk", "types": "build/index.d.ts", "main": "build/index.js", From 1dc3cf3777a31be9ca8f8d3db6d952548a00edd7 Mon Sep 17 00:00:00 2001 From: Dobrunia Kostrigin <48620984+Dobrunia@users.noreply.github.com> Date: Wed, 10 Jun 2026 19:25:31 +0300 Subject: [PATCH 5/5] add utm --- build/src/dbScheme/promoCode.d.ts | 7 +----- build/src/dbScheme/promoCodeUsage.d.ts | 25 +++++++++++++++++++++ src/dbScheme/promoCode.ts | 8 +------ src/dbScheme/promoCodeUsage.ts | 30 ++++++++++++++++++++++++++ 4 files changed, 57 insertions(+), 13 deletions(-) diff --git a/build/src/dbScheme/promoCode.d.ts b/build/src/dbScheme/promoCode.d.ts index 3ac692b..d27d068 100644 --- a/build/src/dbScheme/promoCode.d.ts +++ b/build/src/dbScheme/promoCode.d.ts @@ -21,11 +21,6 @@ export interface PromoCodeDBScheme { * @example 100 */ limit?: number; - /** - * Date before which promo code cannot be used - * @example 2026-01-01T00:00:00.000Z - */ - startsAt?: Date; /** * Date after which promo code cannot be used * @example 2026-12-31T23:59:59.000Z @@ -45,5 +40,5 @@ export interface PromoCodeDBScheme { * User or system id that created promo code * @example 507f1f77bcf86cd799439013 */ - createdBy?: string; + createdBy: string; } diff --git a/build/src/dbScheme/promoCodeUsage.d.ts b/build/src/dbScheme/promoCodeUsage.d.ts index c292930..fdaf2c9 100644 --- a/build/src/dbScheme/promoCodeUsage.d.ts +++ b/build/src/dbScheme/promoCodeUsage.d.ts @@ -24,4 +24,29 @@ export interface PromoCodeUsageDBScheme { * @example 2026-06-10T12:30:00.000Z */ appliedAt: Date; + /** + * UTM parameters captured when promo code was applied. Used for analytics purposes + */ + utm?: { + /** + * UTM source - identifies which site sent the traffic + */ + source?: string; + /** + * UTM medium - identifies what type of link was used + */ + medium?: string; + /** + * UTM campaign - identifies a specific product promotion or strategic campaign + */ + campaign?: string; + /** + * UTM content - identifies what specifically was clicked to bring the user to the site + */ + content?: string; + /** + * UTM term - identifies search terms + */ + term?: string; + }; } diff --git a/src/dbScheme/promoCode.ts b/src/dbScheme/promoCode.ts index 66cbb82..9bcf430 100644 --- a/src/dbScheme/promoCode.ts +++ b/src/dbScheme/promoCode.ts @@ -26,12 +26,6 @@ export interface PromoCodeDBScheme { */ limit?: number; - /** - * Date before which promo code cannot be used - * @example 2026-01-01T00:00:00.000Z - */ - startsAt?: Date; - /** * Date after which promo code cannot be used * @example 2026-12-31T23:59:59.000Z @@ -54,5 +48,5 @@ export interface PromoCodeDBScheme { * User or system id that created promo code * @example 507f1f77bcf86cd799439013 */ - createdBy?: string; + createdBy: string; } diff --git a/src/dbScheme/promoCodeUsage.ts b/src/dbScheme/promoCodeUsage.ts index bddae20..4a014dc 100644 --- a/src/dbScheme/promoCodeUsage.ts +++ b/src/dbScheme/promoCodeUsage.ts @@ -29,4 +29,34 @@ export interface PromoCodeUsageDBScheme { * @example 2026-06-10T12:30:00.000Z */ appliedAt: Date; + + /** + * UTM parameters captured when promo code was applied. Used for analytics purposes + */ + utm?: { + /** + * UTM source - identifies which site sent the traffic + */ + source?: string; + + /** + * UTM medium - identifies what type of link was used + */ + medium?: string; + + /** + * UTM campaign - identifies a specific product promotion or strategic campaign + */ + campaign?: string; + + /** + * UTM content - identifies what specifically was clicked to bring the user to the site + */ + content?: string; + + /** + * UTM term - identifies search terms + */ + term?: string; + }; }