@happyvertical/smrt-ads 0.51.31 → 0.51.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__smrt-register__.d.ts +2 -0
- package/dist/__smrt-register__.d.ts.map +1 -0
- package/dist/collections/AdDeliveryTierCollection.d.ts +42 -0
- package/dist/collections/AdDeliveryTierCollection.d.ts.map +1 -0
- package/dist/collections/AdEventCollection.d.ts +119 -0
- package/dist/collections/AdEventCollection.d.ts.map +1 -0
- package/dist/collections/AdFormatCollection.d.ts +38 -0
- package/dist/collections/AdFormatCollection.d.ts.map +1 -0
- package/dist/collections/AdGroupCollection.d.ts +100 -0
- package/dist/collections/AdGroupCollection.d.ts.map +1 -0
- package/dist/collections/AdVariationCollection.d.ts +93 -0
- package/dist/collections/AdVariationCollection.d.ts.map +1 -0
- package/dist/collections/index.d.ts +10 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/index.d.ts +12 -885
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -1
- package/dist/manifest.json +1 -1
- package/dist/models/AdDeliveryTier.d.ts +66 -0
- package/dist/models/AdDeliveryTier.d.ts.map +1 -0
- package/dist/models/AdEvent.d.ts +105 -0
- package/dist/models/AdEvent.d.ts.map +1 -0
- package/dist/models/AdFormat.d.ts +62 -0
- package/dist/models/AdFormat.d.ts.map +1 -0
- package/dist/models/AdGroup.d.ts +153 -0
- package/dist/models/AdGroup.d.ts.map +1 -0
- package/dist/models/AdVariation.d.ts +117 -0
- package/dist/models/AdVariation.d.ts.map +1 -0
- package/dist/models/index.d.ts +10 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/smrt-knowledge.json +4 -4
- package/dist/types/index.d.ts +46 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,wBAAwB,CAAC;AAGhC,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,cAAc,EACd,OAAO,EACP,QAAQ,EACR,OAAO,EACP,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,YAAY,GACb,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ObjectRegistry, SmrtCollection, SmrtObject, crossPackageRef, foreignKey, smrt } from "@happyvertical/smrt-core";
|
|
2
2
|
import { TenantScoped, queryGlobal, queryWithGlobals, tenantId } from "@happyvertical/smrt-tenancy";
|
|
3
3
|
//#region src/__smrt-register__.ts
|
|
4
|
-
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-ads\",\"packageVersion\":\"0.51.31\",\"objects\":{\"@happyvertical/smrt-ads:AdDeliveryTierCollection\":{\"name\":\"addeliverytiercollection\",\"className\":\"AdDeliveryTierCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdDeliveryTierCollection\",\"collection\":\"addeliverytiers\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdDeliveryTierCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByPriority\":{\"name\":\"findByPriority\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true},\"findByPricingModel\":{\"name\":\"findByPricingModel\",\"async\":true,\"parameters\":[{\"name\":\"pricingModel\",\"type\":\"PricingModel\",\"optional\":false}],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true},\"getHighestPriority\":{\"name\":\"getHighestPriority\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier | null>\",\"isStatic\":false,\"isPublic\":true},\"findFixedPricing\":{\"name\":\"findFixedPricing\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true},\"findCPM\":{\"name\":\"findCPM\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true},\"findPerformanceBased\":{\"name\":\"findPerformanceBased\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdDeliveryTier\",\"exportName\":\"AdDeliveryTierCollection\",\"collectionExportName\":\"AdDeliveryTierCollectionCollection\",\"schema\":{\"tableName\":\"ad_delivery_tiers\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_delivery_tiers\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"priority\\\" INTEGER DEFAULT 0,\\n \\\"pricing_model\\\" TEXT,\\n \\\"description\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"priority\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"pricing_model\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_delivery_tiers_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"ad_delivery_tiers_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"df0ec0ff\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdEventCollection\":{\"name\":\"adeventcollection\",\"className\":\"AdEventCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdEventCollection\",\"collection\":\"adevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdEventCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByVariation\":{\"name\":\"findByVariation\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByZone\":{\"name\":\"findByZone\",\"async\":true,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findBySite\":{\"name\":\"findBySite\",\"async\":true,\"parameters\":[{\"name\":\"siteId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"start\",\"type\":\"Date\",\"optional\":false},{\"name\":\"end\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"eventType\",\"type\":\"AdEventType\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"countByType\":{\"name\":\"countByType\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false},{\"name\":\"eventType\",\"type\":\"AdEventType\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"countImpressions\":{\"name\":\"countImpressions\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"countClicks\":{\"name\":\"countClicks\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"countConversions\":{\"name\":\"countConversions\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findImpressions\":{\"name\":\"findImpressions\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findClicks\":{\"name\":\"findClicks\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findConversions\":{\"name\":\"findConversions\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"getVariationStats\":{\"name\":\"getVariationStats\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdEvent\",\"exportName\":\"AdEventCollection\",\"collectionExportName\":\"AdEventCollectionCollection\",\"schema\":{\"tableName\":\"ad_events\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_events\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"variation_id\\\" UUID,\\n \\\"zone_id\\\" UUID,\\n \\\"site_id\\\" TEXT DEFAULT '',\\n \\\"event_type\\\" TEXT,\\n \\\"timestamp\\\" TIMESTAMP,\\n \\\"metadata\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"variation_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_variations\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"zone_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"site_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"event_type\":{\"type\":\"TEXT\",\"notNull\":false},\"timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_events_variation_id_idx\",\"columns\":[\"variation_id\"]},{\"name\":\"ad_events_zone_id_idx\",\"columns\":[\"zone_id\"]}],\"version\":\"306d8050\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdFormatCollection\":{\"name\":\"adformatcollection\",\"className\":\"AdFormatCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdFormatCollection\",\"collection\":\"adformats\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdFormatCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByDimensions\":{\"name\":\"findByDimensions\",\"async\":true,\"parameters\":[{\"name\":\"width\",\"type\":\"number\",\"optional\":false},{\"name\":\"height\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<AdFormat | null>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"formatType\",\"type\":\"AdFormatType\",\"optional\":false}],\"returnType\":\"Promise<AdFormat[]>\",\"isStatic\":false,\"isPublic\":true},\"findBanners\":{\"name\":\"findBanners\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdFormat[]>\",\"isStatic\":false,\"isPublic\":true},\"findNative\":{\"name\":\"findNative\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdFormat[]>\",\"isStatic\":false,\"isPublic\":true},\"findVideo\":{\"name\":\"findVideo\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdFormat[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdFormat\",\"exportName\":\"AdFormatCollection\",\"collectionExportName\":\"AdFormatCollectionCollection\",\"schema\":{\"tableName\":\"ad_formats\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_formats\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"width\\\" INTEGER DEFAULT 0,\\n \\\"height\\\" INTEGER DEFAULT 0,\\n \\\"format_type\\\" TEXT,\\n \\\"description\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"width\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"height\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"format_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_formats_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"ad_formats_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"df40cc03\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdGroupCollection\":{\"name\":\"adgroupcollection\",\"className\":\"AdGroupCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdGroupCollection\",\"collection\":\"adgroups\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdGroupCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTier\":{\"name\":\"findByTier\",\"async\":true,\"parameters\":[{\"name\":\"tierId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"AdGroupStatus\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByVertical\":{\"name\":\"findByVertical\",\"async\":true,\"parameters\":[{\"name\":\"verticalSlug\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByZone\":{\"name\":\"findByZone\",\"async\":true,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findEligibleForZone\":{\"name\":\"findEligibleForZone\",\"async\":true,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findPaused\":{\"name\":\"findPaused\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findCompleted\":{\"name\":\"findCompleted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdGroup\",\"exportName\":\"AdGroupCollection\",\"collectionExportName\":\"AdGroupCollectionCollection\",\"schema\":{\"tableName\":\"ad_groups\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_groups\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"tier_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"vertical_slug\\\" TEXT DEFAULT '',\\n \\\"targeting\\\" TEXT DEFAULT '',\\n \\\"zone_ids\\\" TEXT DEFAULT '',\\n \\\"start_date\\\" TIMESTAMP,\\n \\\"end_date\\\" TIMESTAMP,\\n \\\"daily_budget\\\" REAL DEFAULT 0,\\n \\\"total_budget\\\" REAL DEFAULT 0,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"tier_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_delivery_tiers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"vertical_slug\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"targeting\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"zone_ids\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"start_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"end_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"daily_budget\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"total_budget\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false}},\"indexes\":[{\"name\":\"ad_groups_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_groups_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_groups_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_groups_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"ad_groups_tier_id_idx\",\"columns\":[\"tier_id\"]}],\"version\":\"3f8a3fea\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdVariationCollection\":{\"name\":\"advariationcollection\",\"className\":\"AdVariationCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdVariationCollection\",\"collection\":\"advariations\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdVariationCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByGroup\":{\"name\":\"findByGroup\",\"async\":true,\"parameters\":[{\"name\":\"groupId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByFormat\":{\"name\":\"findByFormat\",\"async\":true,\"parameters\":[{\"name\":\"formatId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findActiveByGroup\":{\"name\":\"findActiveByGroup\",\"async\":true,\"parameters\":[{\"name\":\"groupId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"selectByWeight\":{\"name\":\"selectByWeight\",\"async\":true,\"parameters\":[{\"name\":\"groupId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation | null>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"AdVariationStatus\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findPaused\":{\"name\":\"findPaused\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findTopPerformers\":{\"name\":\"findTopPerformers\",\"async\":true,\"parameters\":[{\"name\":\"limit\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdVariation\",\"exportName\":\"AdVariationCollection\",\"collectionExportName\":\"AdVariationCollectionCollection\",\"schema\":{\"tableName\":\"ad_variations\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_variations\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"group_id\\\" UUID,\\n \\\"format_id\\\" UUID,\\n \\\"asset_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"click_url\\\" TEXT DEFAULT '',\\n \\\"alt_text\\\" TEXT DEFAULT '',\\n \\\"weight\\\" INTEGER DEFAULT 1,\\n \\\"status\\\" TEXT,\\n \\\"impressions\\\" INTEGER DEFAULT 0,\\n \\\"clicks\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"group_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_groups\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"format_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_formats\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"click_url\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"alt_text\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"weight\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":1},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"impressions\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"clicks\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0}},\"indexes\":[{\"name\":\"ad_variations_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_variations_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_variations_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_variations_group_id_idx\",\"columns\":[\"group_id\"]},{\"name\":\"ad_variations_format_id_idx\",\"columns\":[\"format_id\"]},{\"name\":\"ad_variations_asset_id_idx\",\"columns\":[\"asset_id\"]}],\"version\":\"e8fb6233\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdDeliveryTier\":{\"name\":\"addeliverytier\",\"className\":\"AdDeliveryTier\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdDeliveryTier\",\"collection\":\"addeliverytiers\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdDeliveryTier.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"priority\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"pricingModel\":{\"type\":\"text\",\"required\":false},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isHigherPriorityThan\":{\"name\":\"isHigherPriorityThan\",\"async\":false,\"parameters\":[{\"name\":\"other\",\"type\":\"AdDeliveryTier\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isFixedPricing\":{\"name\":\"isFixedPricing\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPerformanceBased\":{\"name\":\"isPerformanceBased\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true}},\"extends\":\"SmrtObject\",\"exportName\":\"AdDeliveryTier\",\"collectionExportName\":\"AdDeliveryTierCollection\",\"schema\":{\"tableName\":\"ad_delivery_tiers\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_delivery_tiers\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"priority\\\" INTEGER DEFAULT 0,\\n \\\"pricing_model\\\" TEXT,\\n \\\"description\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"priority\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"pricing_model\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_delivery_tiers_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"ad_delivery_tiers_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"df0ec0ff\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdEvent\":{\"name\":\"adevent\",\"className\":\"AdEvent\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdEvent\",\"collection\":\"adevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdEvent.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"variationId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AdVariation\"},\"zoneId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-properties:Zone\"},\"siteId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"eventType\":{\"type\":\"text\",\"required\":false},\"timestamp\":{\"type\":\"datetime\",\"required\":false},\"metadata\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getMetadata\":{\"name\":\"getMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setMetadata\":{\"name\":\"setMetadata\",\"async\":false,\"parameters\":[{\"name\":\"data\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isImpression\":{\"name\":\"isImpression\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isClick\":{\"name\":\"isClick\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isConversion\":{\"name\":\"isConversion\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"create\",\"list\"]},\"mcp\":{\"include\":[\"create\"]},\"cli\":false,\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AdEvent\",\"collectionExportName\":\"AdEventCollection\",\"schema\":{\"tableName\":\"ad_events\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_events\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"variation_id\\\" UUID,\\n \\\"zone_id\\\" UUID,\\n \\\"site_id\\\" TEXT DEFAULT '',\\n \\\"event_type\\\" TEXT,\\n \\\"timestamp\\\" TIMESTAMP,\\n \\\"metadata\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"variation_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_variations\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"zone_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"site_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"event_type\":{\"type\":\"TEXT\",\"notNull\":false},\"timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_events_variation_id_idx\",\"columns\":[\"variation_id\"]},{\"name\":\"ad_events_zone_id_idx\",\"columns\":[\"zone_id\"]}],\"version\":\"306d8050\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdFormat\":{\"name\":\"adformat\",\"className\":\"AdFormat\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdFormat\",\"collection\":\"adformats\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdFormat.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"width\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"height\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"formatType\":{\"type\":\"text\",\"required\":false},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getDimensions\":{\"name\":\"getDimensions\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true},\"matchesDimensions\":{\"name\":\"matchesDimensions\",\"async\":false,\"parameters\":[{\"name\":\"width\",\"type\":\"number\",\"optional\":false},{\"name\":\"height\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true}},\"extends\":\"SmrtObject\",\"exportName\":\"AdFormat\",\"collectionExportName\":\"AdFormatCollection\",\"schema\":{\"tableName\":\"ad_formats\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_formats\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"width\\\" INTEGER DEFAULT 0,\\n \\\"height\\\" INTEGER DEFAULT 0,\\n \\\"format_type\\\" TEXT,\\n \\\"description\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"width\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"height\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"format_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_formats_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"ad_formats_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"df40cc03\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdGroup\":{\"name\":\"adgroup\",\"className\":\"AdGroup\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdGroup\",\"collection\":\"adgroups\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdGroup.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-commerce:Contract\"},\"tierId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AdDeliveryTier\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"verticalSlug\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"targeting\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"zoneIds\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"startDate\":{\"type\":\"datetime\",\"required\":false},\"endDate\":{\"type\":\"datetime\",\"required\":false},\"dailyBudget\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"totalBudget\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"status\":{\"type\":\"text\",\"required\":false}},\"methods\":{\"getZoneIds\":{\"name\":\"getZoneIds\",\"async\":false,\"parameters\":[],\"returnType\":\"string[]\",\"isStatic\":false,\"isPublic\":true},\"setZoneIds\":{\"name\":\"setZoneIds\",\"async\":false,\"parameters\":[{\"name\":\"ids\",\"type\":\"string[]\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"addZoneId\":{\"name\":\"addZoneId\",\"async\":false,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"removeZoneId\":{\"name\":\"removeZoneId\",\"async\":false,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"hasZoneId\":{\"name\":\"hasZoneId\",\"async\":false,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getTargeting\":{\"name\":\"getTargeting\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setTargeting\":{\"name\":\"setTargeting\",\"async\":false,\"parameters\":[{\"name\":\"rules\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPaused\":{\"name\":\"isPaused\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"hasEnded\":{\"name\":\"hasEnded\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"hasStarted\":{\"name\":\"hasStarted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"create\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AdGroup\",\"collectionExportName\":\"AdGroupCollection\",\"schema\":{\"tableName\":\"ad_groups\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_groups\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"tier_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"vertical_slug\\\" TEXT DEFAULT '',\\n \\\"targeting\\\" TEXT DEFAULT '',\\n \\\"zone_ids\\\" TEXT DEFAULT '',\\n \\\"start_date\\\" TIMESTAMP,\\n \\\"end_date\\\" TIMESTAMP,\\n \\\"daily_budget\\\" REAL DEFAULT 0,\\n \\\"total_budget\\\" REAL DEFAULT 0,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"tier_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_delivery_tiers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"vertical_slug\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"targeting\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"zone_ids\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"start_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"end_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"daily_budget\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"total_budget\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false}},\"indexes\":[{\"name\":\"ad_groups_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_groups_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_groups_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_groups_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"ad_groups_tier_id_idx\",\"columns\":[\"tier_id\"]}],\"version\":\"3f8a3fea\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdVariation\":{\"name\":\"advariation\",\"className\":\"AdVariation\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdVariation\",\"collection\":\"advariations\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdVariation.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"groupId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AdGroup\"},\"formatId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AdFormat\"},\"assetId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-assets:Asset\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"clickUrl\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"altText\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"weight\":{\"type\":\"integer\",\"required\":false,\"default\":1},\"status\":{\"type\":\"text\",\"required\":false},\"impressions\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"clicks\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPaused\":{\"name\":\"isPaused\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getCTR\":{\"name\":\"getCTR\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"recordImpression\":{\"name\":\"recordImpression\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"recordClick\":{\"name\":\"recordClick\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"create\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AdVariation\",\"collectionExportName\":\"AdVariationCollection\",\"schema\":{\"tableName\":\"ad_variations\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_variations\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"group_id\\\" UUID,\\n \\\"format_id\\\" UUID,\\n \\\"asset_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"click_url\\\" TEXT DEFAULT '',\\n \\\"alt_text\\\" TEXT DEFAULT '',\\n \\\"weight\\\" INTEGER DEFAULT 1,\\n \\\"status\\\" TEXT,\\n \\\"impressions\\\" INTEGER DEFAULT 0,\\n \\\"clicks\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"group_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_groups\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"format_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_formats\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"click_url\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"alt_text\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"weight\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":1},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"impressions\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"clicks\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0}},\"indexes\":[{\"name\":\"ad_variations_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_variations_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_variations_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_variations_group_id_idx\",\"columns\":[\"group_id\"]},{\"name\":\"ad_variations_format_id_idx\",\"columns\":[\"format_id\"]},{\"name\":\"ad_variations_asset_id_idx\",\"columns\":[\"asset_id\"]}],\"version\":\"e8fb6233\"},\"importPath\":\"@happyvertical/smrt-ads\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-commerce\",\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
4
|
+
ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-ads\",\"packageVersion\":\"0.51.33\",\"objects\":{\"@happyvertical/smrt-ads:AdDeliveryTierCollection\":{\"name\":\"addeliverytiercollection\",\"className\":\"AdDeliveryTierCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdDeliveryTierCollection\",\"collection\":\"addeliverytiers\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdDeliveryTierCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByPriority\":{\"name\":\"findByPriority\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true},\"findByPricingModel\":{\"name\":\"findByPricingModel\",\"async\":true,\"parameters\":[{\"name\":\"pricingModel\",\"type\":\"PricingModel\",\"optional\":false}],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true},\"getHighestPriority\":{\"name\":\"getHighestPriority\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier | null>\",\"isStatic\":false,\"isPublic\":true},\"findFixedPricing\":{\"name\":\"findFixedPricing\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true},\"findCPM\":{\"name\":\"findCPM\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true},\"findPerformanceBased\":{\"name\":\"findPerformanceBased\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdDeliveryTier[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdDeliveryTier\",\"exportName\":\"AdDeliveryTierCollection\",\"collectionExportName\":\"AdDeliveryTierCollectionCollection\",\"schema\":{\"tableName\":\"ad_delivery_tiers\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_delivery_tiers\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"priority\\\" INTEGER DEFAULT 0,\\n \\\"pricing_model\\\" TEXT,\\n \\\"description\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"priority\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"pricing_model\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_delivery_tiers_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"ad_delivery_tiers_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"df0ec0ff\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdEventCollection\":{\"name\":\"adeventcollection\",\"className\":\"AdEventCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdEventCollection\",\"collection\":\"adevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdEventCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByVariation\":{\"name\":\"findByVariation\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByZone\":{\"name\":\"findByZone\",\"async\":true,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findBySite\":{\"name\":\"findBySite\",\"async\":true,\"parameters\":[{\"name\":\"siteId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"start\",\"type\":\"Date\",\"optional\":false},{\"name\":\"end\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"eventType\",\"type\":\"AdEventType\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"countByType\":{\"name\":\"countByType\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false},{\"name\":\"eventType\",\"type\":\"AdEventType\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"countImpressions\":{\"name\":\"countImpressions\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"countClicks\":{\"name\":\"countClicks\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"countConversions\":{\"name\":\"countConversions\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<number>\",\"isStatic\":false,\"isPublic\":true},\"findImpressions\":{\"name\":\"findImpressions\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findClicks\":{\"name\":\"findClicks\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findConversions\":{\"name\":\"findConversions\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"getVariationStats\":{\"name\":\"getVariationStats\",\"async\":true,\"parameters\":[{\"name\":\"variationId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdEvent[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"cli\":false},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdEvent\",\"exportName\":\"AdEventCollection\",\"collectionExportName\":\"AdEventCollectionCollection\",\"schema\":{\"tableName\":\"ad_events\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_events\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"variation_id\\\" UUID,\\n \\\"zone_id\\\" UUID,\\n \\\"site_id\\\" TEXT DEFAULT '',\\n \\\"event_type\\\" TEXT,\\n \\\"timestamp\\\" TIMESTAMP,\\n \\\"metadata\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"variation_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_variations\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"zone_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"site_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"event_type\":{\"type\":\"TEXT\",\"notNull\":false},\"timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_events_variation_id_idx\",\"columns\":[\"variation_id\"]},{\"name\":\"ad_events_zone_id_idx\",\"columns\":[\"zone_id\"]}],\"version\":\"306d8050\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdFormatCollection\":{\"name\":\"adformatcollection\",\"className\":\"AdFormatCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdFormatCollection\",\"collection\":\"adformats\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdFormatCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByDimensions\":{\"name\":\"findByDimensions\",\"async\":true,\"parameters\":[{\"name\":\"width\",\"type\":\"number\",\"optional\":false},{\"name\":\"height\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"Promise<AdFormat | null>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"formatType\",\"type\":\"AdFormatType\",\"optional\":false}],\"returnType\":\"Promise<AdFormat[]>\",\"isStatic\":false,\"isPublic\":true},\"findBanners\":{\"name\":\"findBanners\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdFormat[]>\",\"isStatic\":false,\"isPublic\":true},\"findNative\":{\"name\":\"findNative\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdFormat[]>\",\"isStatic\":false,\"isPublic\":true},\"findVideo\":{\"name\":\"findVideo\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdFormat[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdFormat\",\"exportName\":\"AdFormatCollection\",\"collectionExportName\":\"AdFormatCollectionCollection\",\"schema\":{\"tableName\":\"ad_formats\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_formats\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"width\\\" INTEGER DEFAULT 0,\\n \\\"height\\\" INTEGER DEFAULT 0,\\n \\\"format_type\\\" TEXT,\\n \\\"description\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"width\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"height\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"format_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_formats_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"ad_formats_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"df40cc03\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdGroupCollection\":{\"name\":\"adgroupcollection\",\"className\":\"AdGroupCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdGroupCollection\",\"collection\":\"adgroups\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdGroupCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByContract\":{\"name\":\"findByContract\",\"async\":true,\"parameters\":[{\"name\":\"contractId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTier\":{\"name\":\"findByTier\",\"async\":true,\"parameters\":[{\"name\":\"tierId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"AdGroupStatus\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByVertical\":{\"name\":\"findByVertical\",\"async\":true,\"parameters\":[{\"name\":\"verticalSlug\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByZone\":{\"name\":\"findByZone\",\"async\":true,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findEligibleForZone\":{\"name\":\"findEligibleForZone\",\"async\":true,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findPaused\":{\"name\":\"findPaused\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findCompleted\":{\"name\":\"findCompleted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdGroup[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdGroup\",\"exportName\":\"AdGroupCollection\",\"collectionExportName\":\"AdGroupCollectionCollection\",\"schema\":{\"tableName\":\"ad_groups\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_groups\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"tier_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"vertical_slug\\\" TEXT DEFAULT '',\\n \\\"targeting\\\" TEXT DEFAULT '',\\n \\\"zone_ids\\\" TEXT DEFAULT '',\\n \\\"start_date\\\" TIMESTAMP,\\n \\\"end_date\\\" TIMESTAMP,\\n \\\"daily_budget\\\" REAL DEFAULT 0,\\n \\\"total_budget\\\" REAL DEFAULT 0,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"tier_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_delivery_tiers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"vertical_slug\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"targeting\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"zone_ids\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"start_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"end_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"daily_budget\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"total_budget\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false}},\"indexes\":[{\"name\":\"ad_groups_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_groups_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_groups_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_groups_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"ad_groups_tier_id_idx\",\"columns\":[\"tier_id\"]}],\"version\":\"3f8a3fea\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdVariationCollection\":{\"name\":\"advariationcollection\",\"className\":\"AdVariationCollection\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdVariationCollection\",\"collection\":\"advariations\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/collections/AdVariationCollection.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{},\"methods\":{\"findByGroup\":{\"name\":\"findByGroup\",\"async\":true,\"parameters\":[{\"name\":\"groupId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByFormat\":{\"name\":\"findByFormat\",\"async\":true,\"parameters\":[{\"name\":\"formatId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findActiveByGroup\":{\"name\":\"findActiveByGroup\",\"async\":true,\"parameters\":[{\"name\":\"groupId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"selectByWeight\":{\"name\":\"selectByWeight\",\"async\":true,\"parameters\":[{\"name\":\"groupId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation | null>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"AdVariationStatus\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findPaused\":{\"name\":\"findPaused\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findTopPerformers\":{\"name\":\"findTopPerformers\",\"async\":true,\"parameters\":[{\"name\":\"limit\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findByTenant\":{\"name\":\"findByTenant\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findGlobal\":{\"name\":\"findGlobal\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true},\"findWithGlobals\":{\"name\":\"findWithGlobals\",\"async\":true,\"parameters\":[{\"name\":\"tenantId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AdVariation[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AdVariation\",\"exportName\":\"AdVariationCollection\",\"collectionExportName\":\"AdVariationCollectionCollection\",\"schema\":{\"tableName\":\"ad_variations\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_variations\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"group_id\\\" UUID,\\n \\\"format_id\\\" UUID,\\n \\\"asset_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"click_url\\\" TEXT DEFAULT '',\\n \\\"alt_text\\\" TEXT DEFAULT '',\\n \\\"weight\\\" INTEGER DEFAULT 1,\\n \\\"status\\\" TEXT,\\n \\\"impressions\\\" INTEGER DEFAULT 0,\\n \\\"clicks\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"group_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_groups\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"format_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_formats\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"click_url\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"alt_text\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"weight\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":1},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"impressions\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"clicks\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0}},\"indexes\":[{\"name\":\"ad_variations_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_variations_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_variations_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_variations_group_id_idx\",\"columns\":[\"group_id\"]},{\"name\":\"ad_variations_format_id_idx\",\"columns\":[\"format_id\"]},{\"name\":\"ad_variations_asset_id_idx\",\"columns\":[\"asset_id\"]}],\"version\":\"e8fb6233\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdDeliveryTier\":{\"name\":\"addeliverytier\",\"className\":\"AdDeliveryTier\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdDeliveryTier\",\"collection\":\"addeliverytiers\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdDeliveryTier.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"priority\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"pricingModel\":{\"type\":\"text\",\"required\":false},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"isHigherPriorityThan\":{\"name\":\"isHigherPriorityThan\",\"async\":false,\"parameters\":[{\"name\":\"other\",\"type\":\"AdDeliveryTier\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isFixedPricing\":{\"name\":\"isFixedPricing\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPerformanceBased\":{\"name\":\"isPerformanceBased\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true}},\"extends\":\"SmrtObject\",\"exportName\":\"AdDeliveryTier\",\"collectionExportName\":\"AdDeliveryTierCollection\",\"schema\":{\"tableName\":\"ad_delivery_tiers\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_delivery_tiers\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"priority\\\" INTEGER DEFAULT 0,\\n \\\"pricing_model\\\" TEXT,\\n \\\"description\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"priority\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"pricing_model\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_delivery_tiers_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"ad_delivery_tiers_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"df0ec0ff\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdEvent\":{\"name\":\"adevent\",\"className\":\"AdEvent\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdEvent\",\"collection\":\"adevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdEvent.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"variationId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AdVariation\"},\"zoneId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-properties:Zone\"},\"siteId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"eventType\":{\"type\":\"text\",\"required\":false},\"timestamp\":{\"type\":\"datetime\",\"required\":false},\"metadata\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getMetadata\":{\"name\":\"getMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setMetadata\":{\"name\":\"setMetadata\",\"async\":false,\"parameters\":[{\"name\":\"data\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isImpression\":{\"name\":\"isImpression\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isClick\":{\"name\":\"isClick\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isConversion\":{\"name\":\"isConversion\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"create\",\"list\"]},\"mcp\":{\"include\":[\"create\"]},\"cli\":false,\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AdEvent\",\"collectionExportName\":\"AdEventCollection\",\"schema\":{\"tableName\":\"ad_events\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_events\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"variation_id\\\" UUID,\\n \\\"zone_id\\\" UUID,\\n \\\"site_id\\\" TEXT DEFAULT '',\\n \\\"event_type\\\" TEXT,\\n \\\"timestamp\\\" TIMESTAMP,\\n \\\"metadata\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"variation_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_variations\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"zone_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"site_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"event_type\":{\"type\":\"TEXT\",\"notNull\":false},\"timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_events_variation_id_idx\",\"columns\":[\"variation_id\"]},{\"name\":\"ad_events_zone_id_idx\",\"columns\":[\"zone_id\"]}],\"version\":\"306d8050\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdFormat\":{\"name\":\"adformat\",\"className\":\"AdFormat\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdFormat\",\"collection\":\"adformats\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdFormat.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"width\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"height\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"formatType\":{\"type\":\"text\",\"required\":false},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getDimensions\":{\"name\":\"getDimensions\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true},\"matchesDimensions\":{\"name\":\"matchesDimensions\",\"async\":false,\"parameters\":[{\"name\":\"width\",\"type\":\"number\",\"optional\":false},{\"name\":\"height\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true}},\"extends\":\"SmrtObject\",\"exportName\":\"AdFormat\",\"collectionExportName\":\"AdFormatCollection\",\"schema\":{\"tableName\":\"ad_formats\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_formats\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"width\\\" INTEGER DEFAULT 0,\\n \\\"height\\\" INTEGER DEFAULT 0,\\n \\\"format_type\\\" TEXT,\\n \\\"description\\\" TEXT DEFAULT ''\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"},\"width\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"height\":{\"type\":\"INTEGER\",\"notNull\":false,\"unique\":false,\"default\":0},\"format_type\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"unique\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"ad_formats_slug_context_idx\",\"columns\":[\"slug\",\"context\"],\"unique\":true},{\"name\":\"ad_formats_created_at_idx\",\"columns\":[\"created_at\"]}],\"version\":\"df40cc03\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdGroup\":{\"name\":\"adgroup\",\"className\":\"AdGroup\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdGroup\",\"collection\":\"adgroups\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdGroup.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"contractId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-commerce:Contract\"},\"tierId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AdDeliveryTier\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"verticalSlug\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"targeting\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"zoneIds\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"startDate\":{\"type\":\"datetime\",\"required\":false},\"endDate\":{\"type\":\"datetime\",\"required\":false},\"dailyBudget\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"totalBudget\":{\"type\":\"decimal\",\"required\":false,\"default\":0},\"status\":{\"type\":\"text\",\"required\":false}},\"methods\":{\"getZoneIds\":{\"name\":\"getZoneIds\",\"async\":false,\"parameters\":[],\"returnType\":\"string[]\",\"isStatic\":false,\"isPublic\":true},\"setZoneIds\":{\"name\":\"setZoneIds\",\"async\":false,\"parameters\":[{\"name\":\"ids\",\"type\":\"string[]\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"addZoneId\":{\"name\":\"addZoneId\",\"async\":false,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"removeZoneId\":{\"name\":\"removeZoneId\",\"async\":false,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"hasZoneId\":{\"name\":\"hasZoneId\",\"async\":false,\"parameters\":[{\"name\":\"zoneId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getTargeting\":{\"name\":\"getTargeting\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setTargeting\":{\"name\":\"setTargeting\",\"async\":false,\"parameters\":[{\"name\":\"rules\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPaused\":{\"name\":\"isPaused\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isCompleted\":{\"name\":\"isCompleted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"hasEnded\":{\"name\":\"hasEnded\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"hasStarted\":{\"name\":\"hasStarted\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"create\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AdGroup\",\"collectionExportName\":\"AdGroupCollection\",\"schema\":{\"tableName\":\"ad_groups\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_groups\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"contract_id\\\" UUID,\\n \\\"tier_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"vertical_slug\\\" TEXT DEFAULT '',\\n \\\"targeting\\\" TEXT DEFAULT '',\\n \\\"zone_ids\\\" TEXT DEFAULT '',\\n \\\"start_date\\\" TIMESTAMP,\\n \\\"end_date\\\" TIMESTAMP,\\n \\\"daily_budget\\\" REAL DEFAULT 0,\\n \\\"total_budget\\\" REAL DEFAULT 0,\\n \\\"status\\\" TEXT\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"contract_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"tier_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_delivery_tiers\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"vertical_slug\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"targeting\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"zone_ids\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"start_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"end_date\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"daily_budget\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"total_budget\":{\"type\":\"REAL\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false}},\"indexes\":[{\"name\":\"ad_groups_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_groups_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_groups_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_groups_contract_id_idx\",\"columns\":[\"contract_id\"]},{\"name\":\"ad_groups_tier_id_idx\",\"columns\":[\"tier_id\"]}],\"version\":\"3f8a3fea\"},\"importPath\":\"@happyvertical/smrt-ads\"},\"@happyvertical/smrt-ads:AdVariation\":{\"name\":\"advariation\",\"className\":\"AdVariation\",\"qualifiedName\":\"@happyvertical/smrt-ads:AdVariation\",\"collection\":\"advariations\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/ads/src/models/AdVariation.ts\",\"packageName\":\"@happyvertical/smrt-ads\",\"fields\":{\"created_at\":{\"type\":\"datetime\",\"required\":false},\"updated_at\":{\"type\":\"datetime\",\"required\":false},\"tenantId\":{\"type\":\"text\",\"required\":false,\"_meta\":{\"sqlType\":\"UUID\",\"nullable\":true,\"__tenancy\":{\"isTenantIdField\":true,\"autoFilter\":true,\"required\":false,\"autoPopulate\":true,\"nullable\":true,\"mode\":\"optional\",\"field\":\"tenantId\",\"allowSuperAdminBypass\":false}}},\"groupId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AdGroup\"},\"formatId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AdFormat\"},\"assetId\":{\"type\":\"crossPackageRef\",\"required\":false,\"related\":\"@happyvertical/smrt-assets:Asset\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"clickUrl\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"altText\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"weight\":{\"type\":\"integer\",\"required\":false,\"default\":1},\"status\":{\"type\":\"text\",\"required\":false},\"impressions\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"clicks\":{\"type\":\"integer\",\"required\":false,\"default\":0}},\"methods\":{\"isActive\":{\"name\":\"isActive\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isDraft\":{\"name\":\"isDraft\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPaused\":{\"name\":\"isPaused\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getCTR\":{\"name\":\"getCTR\",\"async\":false,\"parameters\":[],\"returnType\":\"number\",\"isStatic\":false,\"isPublic\":true},\"recordImpression\":{\"name\":\"recordImpression\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"recordClick\":{\"name\":\"recordClick\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"create\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AdVariation\",\"collectionExportName\":\"AdVariationCollection\",\"schema\":{\"tableName\":\"ad_variations\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"ad_variations\\\" (\\n \\\"id\\\" UUID PRIMARY KEY NOT NULL,\\n \\\"slug\\\" TEXT NOT NULL,\\n \\\"context\\\" TEXT NOT NULL DEFAULT '',\\n \\\"_meta_type\\\" TEXT NOT NULL,\\n \\\"_meta_data\\\" JSON,\\n \\\"created_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"updated_at\\\" TIMESTAMP NOT NULL DEFAULT current_timestamp,\\n \\\"tenant_id\\\" UUID,\\n \\\"group_id\\\" UUID,\\n \\\"format_id\\\" UUID,\\n \\\"asset_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"click_url\\\" TEXT DEFAULT '',\\n \\\"alt_text\\\" TEXT DEFAULT '',\\n \\\"weight\\\" INTEGER DEFAULT 1,\\n \\\"status\\\" TEXT,\\n \\\"impressions\\\" INTEGER DEFAULT 0,\\n \\\"clicks\\\" INTEGER DEFAULT 0\\n);\",\"columns\":{\"id\":{\"type\":\"UUID\",\"primaryKey\":true,\"referenceKind\":\"id\",\"notNull\":true},\"slug\":{\"type\":\"TEXT\",\"notNull\":true},\"context\":{\"type\":\"TEXT\",\"notNull\":true,\"default\":\"\"},\"_meta_type\":{\"type\":\"TEXT\",\"notNull\":true},\"_meta_data\":{\"type\":\"JSON\",\"notNull\":false},\"created_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"updated_at\":{\"type\":\"TIMESTAMP\",\"notNull\":true,\"default\":\"current_timestamp\"},\"tenant_id\":{\"type\":\"UUID\",\"referenceKind\":\"tenantId\",\"notNull\":false},\"group_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_groups\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"format_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"ad_formats\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"asset_id\":{\"type\":\"UUID\",\"referenceKind\":\"crossPackageRef\",\"notNull\":false},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"click_url\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"alt_text\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"weight\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":1},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"impressions\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"clicks\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0}},\"indexes\":[{\"name\":\"ad_variations_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"ad_variations_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"ad_variations_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"ad_variations_group_id_idx\",\"columns\":[\"group_id\"]},{\"name\":\"ad_variations_format_id_idx\",\"columns\":[\"format_id\"]},{\"name\":\"ad_variations_asset_id_idx\",\"columns\":[\"asset_id\"]}],\"version\":\"e8fb6233\"},\"importPath\":\"@happyvertical/smrt-ads\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-commerce\",\"@happyvertical/smrt-core\",\"@happyvertical/smrt-tenancy\"]}"));
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region src/types/index.ts
|
|
7
7
|
var AdFormatType = /* @__PURE__ */ ((AdFormatType2) => {
|
package/dist/manifest.json
CHANGED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AdDeliveryTier model - Priority waterfall for ad selection
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
6
|
+
import { PricingModel } from '../types/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Options for constructing an {@link AdDeliveryTier}.
|
|
9
|
+
*/
|
|
10
|
+
export interface AdDeliveryTierOptions extends SmrtObjectOptions {
|
|
11
|
+
name?: string;
|
|
12
|
+
priority?: number;
|
|
13
|
+
pricingModel?: PricingModel;
|
|
14
|
+
description?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* AdDeliveryTier defines priority levels for ad serving.
|
|
18
|
+
*
|
|
19
|
+
* Ads are selected by priority (lower = higher priority):
|
|
20
|
+
* 1. Sponsorship - Guaranteed, premium placements
|
|
21
|
+
* 2. Standard - Regular programmatic ads
|
|
22
|
+
* 3. House - Self-promotional/fallback ads
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* const sponsorship = await tiers.create({
|
|
27
|
+
* name: 'Sponsorship',
|
|
28
|
+
* priority: 1,
|
|
29
|
+
* pricingModel: PricingModel.FIXED,
|
|
30
|
+
* description: 'Premium guaranteed placements'
|
|
31
|
+
* });
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare class AdDeliveryTier extends SmrtObject {
|
|
35
|
+
/**
|
|
36
|
+
* Display name (e.g., "Sponsorship", "Standard", "House")
|
|
37
|
+
*/
|
|
38
|
+
name: string;
|
|
39
|
+
/**
|
|
40
|
+
* Priority level (lower = higher priority: 1, 2, 3...)
|
|
41
|
+
*/
|
|
42
|
+
priority: number;
|
|
43
|
+
/**
|
|
44
|
+
* Pricing model for this tier
|
|
45
|
+
*/
|
|
46
|
+
pricingModel: PricingModel;
|
|
47
|
+
/**
|
|
48
|
+
* Optional description
|
|
49
|
+
*/
|
|
50
|
+
description: string;
|
|
51
|
+
constructor(options?: AdDeliveryTierOptions);
|
|
52
|
+
/**
|
|
53
|
+
* Check if this tier is higher priority than another
|
|
54
|
+
*/
|
|
55
|
+
isHigherPriorityThan(other: AdDeliveryTier): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Check if this is a fixed pricing tier
|
|
58
|
+
*/
|
|
59
|
+
isFixedPricing(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Check if this is a performance-based tier (CPC, CPA)
|
|
62
|
+
*/
|
|
63
|
+
isPerformanceBased(): boolean;
|
|
64
|
+
}
|
|
65
|
+
export default AdDeliveryTier;
|
|
66
|
+
//# sourceMappingURL=AdDeliveryTier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdDeliveryTier.d.ts","sourceRoot":"","sources":["../../src/models/AdDeliveryTier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AAQH,qBAKa,cAAe,SAAQ,UAAU;IAC5C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAM;IAElB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAK;IAErB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAoB;IAE9C;;OAEG;IACH,WAAW,EAAE,MAAM,CAAM;gBAEb,OAAO,GAAE,qBAA0B;IAU/C;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;IAIpD;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB;;OAEG;IACH,kBAAkB,IAAI,OAAO;CAM9B;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AdEvent model - Immutable event tracking (impressions, clicks)
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
6
|
+
import { AdEventType } from '../types/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Options for constructing an {@link AdEvent}.
|
|
9
|
+
*/
|
|
10
|
+
export interface AdEventOptions extends SmrtObjectOptions {
|
|
11
|
+
tenantId?: string | null;
|
|
12
|
+
variationId?: string;
|
|
13
|
+
zoneId?: string;
|
|
14
|
+
siteId?: string;
|
|
15
|
+
eventType?: AdEventType;
|
|
16
|
+
timestamp?: Date;
|
|
17
|
+
metadata?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* AdEvent tracks ad impressions, clicks, and conversions.
|
|
21
|
+
* Events are immutable (append-only, no update/delete).
|
|
22
|
+
*
|
|
23
|
+
* References:
|
|
24
|
+
* - variationId: FK to AdVariation (within package)
|
|
25
|
+
* - zoneId: String reference to smrt-properties Zone (cross-package)
|
|
26
|
+
* - siteId: Denormalized for query efficiency (cross-package)
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Track an impression
|
|
31
|
+
* const impression = await events.create({
|
|
32
|
+
* variationId: variation.id,
|
|
33
|
+
* zoneId: 'zone-uuid',
|
|
34
|
+
* siteId: 'site-uuid',
|
|
35
|
+
* eventType: AdEventType.IMPRESSION,
|
|
36
|
+
* metadata: JSON.stringify({
|
|
37
|
+
* ip: '192.168.1.1',
|
|
38
|
+
* userAgent: 'Mozilla/5.0...',
|
|
39
|
+
* referrer: 'https://example.com'
|
|
40
|
+
* })
|
|
41
|
+
* });
|
|
42
|
+
*
|
|
43
|
+
* // Track a click
|
|
44
|
+
* const click = await events.create({
|
|
45
|
+
* variationId: variation.id,
|
|
46
|
+
* zoneId: 'zone-uuid',
|
|
47
|
+
* siteId: 'site-uuid',
|
|
48
|
+
* eventType: AdEventType.CLICK
|
|
49
|
+
* });
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export declare class AdEvent extends SmrtObject {
|
|
53
|
+
/**
|
|
54
|
+
* Tenant ID for multi-tenancy support
|
|
55
|
+
*/
|
|
56
|
+
tenantId: string | null;
|
|
57
|
+
/**
|
|
58
|
+
* Variation ID (FK to AdVariation)
|
|
59
|
+
*/
|
|
60
|
+
variationId: string;
|
|
61
|
+
/**
|
|
62
|
+
* Zone ID (FK to smrt-properties Zone, cross-package)
|
|
63
|
+
*/
|
|
64
|
+
zoneId: string;
|
|
65
|
+
/**
|
|
66
|
+
* Site ID (denormalized from Zone for query efficiency)
|
|
67
|
+
*/
|
|
68
|
+
siteId: string;
|
|
69
|
+
/**
|
|
70
|
+
* Event type (impression, click, conversion)
|
|
71
|
+
*/
|
|
72
|
+
eventType: AdEventType;
|
|
73
|
+
/**
|
|
74
|
+
* Event timestamp
|
|
75
|
+
*/
|
|
76
|
+
timestamp: Date;
|
|
77
|
+
/**
|
|
78
|
+
* Analytics metadata as JSON string
|
|
79
|
+
* (IP, user agent, referrer, etc.)
|
|
80
|
+
*/
|
|
81
|
+
metadata: string;
|
|
82
|
+
constructor(options?: AdEventOptions);
|
|
83
|
+
/**
|
|
84
|
+
* Get metadata as object
|
|
85
|
+
*/
|
|
86
|
+
getMetadata(): Record<string, unknown>;
|
|
87
|
+
/**
|
|
88
|
+
* Set metadata from object
|
|
89
|
+
*/
|
|
90
|
+
setMetadata(data: Record<string, unknown>): void;
|
|
91
|
+
/**
|
|
92
|
+
* Check if this is an impression event
|
|
93
|
+
*/
|
|
94
|
+
isImpression(): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* Check if this is a click event
|
|
97
|
+
*/
|
|
98
|
+
isClick(): boolean;
|
|
99
|
+
/**
|
|
100
|
+
* Check if this is a conversion event
|
|
101
|
+
*/
|
|
102
|
+
isConversion(): boolean;
|
|
103
|
+
}
|
|
104
|
+
export default AdEvent;
|
|
105
|
+
//# sourceMappingURL=AdEvent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdEvent.d.ts","sourceRoot":"","sources":["../../src/models/AdEvent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAGL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,iBAAiB;IACvD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAOa,OAAQ,SAAQ,UAAU;IACrC;;OAEG;IAEH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/B;;OAEG;IAEH,WAAW,EAAE,MAAM,CAAM;IAEzB;;OAEG;IAEH,MAAM,EAAE,MAAM,CAAM;IAEpB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAM;IAEpB;;OAEG;IACH,SAAS,EAAE,WAAW,CAA0B;IAEhD;;OAEG;IACH,SAAS,EAAE,IAAI,CAAc;IAE7B;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAM;gBAEV,OAAO,GAAE,cAAmB;IAYxC;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAStC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAIhD;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,YAAY,IAAI,OAAO;CAGxB;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AdFormat model - Standard IAB ad dimensions and types
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { SmrtObject, type SmrtObjectOptions } from '@happyvertical/smrt-core';
|
|
6
|
+
import { AdFormatType } from '../types/index.js';
|
|
7
|
+
/**
|
|
8
|
+
* Options for constructing an {@link AdFormat}.
|
|
9
|
+
*/
|
|
10
|
+
export interface AdFormatOptions extends SmrtObjectOptions {
|
|
11
|
+
name?: string;
|
|
12
|
+
width?: number;
|
|
13
|
+
height?: number;
|
|
14
|
+
formatType?: AdFormatType;
|
|
15
|
+
description?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* AdFormat defines standard ad dimensions and types (IAB standards).
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const leaderboard = await formats.create({
|
|
23
|
+
* name: 'Leaderboard',
|
|
24
|
+
* width: 728,
|
|
25
|
+
* height: 90,
|
|
26
|
+
* formatType: AdFormatType.BANNER
|
|
27
|
+
* });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare class AdFormat extends SmrtObject {
|
|
31
|
+
/**
|
|
32
|
+
* Display name (e.g., "Leaderboard", "Medium Rectangle")
|
|
33
|
+
*/
|
|
34
|
+
name: string;
|
|
35
|
+
/**
|
|
36
|
+
* Width in pixels
|
|
37
|
+
*/
|
|
38
|
+
width: number;
|
|
39
|
+
/**
|
|
40
|
+
* Height in pixels
|
|
41
|
+
*/
|
|
42
|
+
height: number;
|
|
43
|
+
/**
|
|
44
|
+
* Format type (banner, native, video)
|
|
45
|
+
*/
|
|
46
|
+
formatType: AdFormatType;
|
|
47
|
+
/**
|
|
48
|
+
* Optional description
|
|
49
|
+
*/
|
|
50
|
+
description: string;
|
|
51
|
+
constructor(options?: AdFormatOptions);
|
|
52
|
+
/**
|
|
53
|
+
* Get dimensions as string (e.g., "728x90")
|
|
54
|
+
*/
|
|
55
|
+
getDimensions(): string;
|
|
56
|
+
/**
|
|
57
|
+
* Check if format matches specific dimensions
|
|
58
|
+
*/
|
|
59
|
+
matchesDimensions(width: number, height: number): boolean;
|
|
60
|
+
}
|
|
61
|
+
export default AdFormat;
|
|
62
|
+
//# sourceMappingURL=AdFormat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdFormat.d.ts","sourceRoot":"","sources":["../../src/models/AdFormat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EAEvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AAOH,qBAKa,QAAS,SAAQ,UAAU;IACtC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAM;IAElB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAK;IAElB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAK;IAEnB;;OAEG;IACH,UAAU,EAAE,YAAY,CAAuB;IAE/C;;OAEG;IACH,WAAW,EAAE,MAAM,CAAM;gBAEb,OAAO,GAAE,eAAoB;IAUzC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAG1D;AAED,eAAe,QAAQ,CAAC"}
|