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..d27d068 --- /dev/null +++ b/build/src/dbScheme/promoCode.d.ts @@ -0,0 +1,44 @@ +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 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..fdaf2c9 --- /dev/null +++ b/build/src/dbScheme/promoCodeUsage.d.ts @@ -0,0 +1,52 @@ +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; + /** + * 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/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 }); 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/package.json b/package.json index ab2db1d..b719a5e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hawk.so/types", - "version": "0.6.0-rc.2", + "version": "0.6.1", "description": "TypeScript definitions for Hawk", "types": "build/index.d.ts", "main": "build/index.js", diff --git a/src/dbScheme/promoCode.ts b/src/dbScheme/promoCode.ts new file mode 100644 index 0000000..9bcf430 --- /dev/null +++ b/src/dbScheme/promoCode.ts @@ -0,0 +1,52 @@ +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 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..4a014dc --- /dev/null +++ b/src/dbScheme/promoCodeUsage.ts @@ -0,0 +1,62 @@ +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; + + /** + * 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; + }; +}