@happyvertical/smrt-analytics 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/index.js CHANGED
@@ -2,7 +2,7 @@ import { ObjectRegistry, SmrtCollection, SmrtObject, field, foreignKey, smrt } f
2
2
  import { definePrompt, resolvePrompt } from "@happyvertical/smrt-prompts";
3
3
  import { TenantScoped, tenantId } from "@happyvertical/smrt-tenancy";
4
4
  //#region src/__smrt-register__.ts
5
- ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-analytics\",\"packageVersion\":\"0.51.31\",\"objects\":{\"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection\":{\"name\":\"analyticsdatastreamcollection\",\"className\":\"AnalyticsDataStreamCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection\",\"collection\":\"analyticsdatastreams\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsDataStreamCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream | null>\",\"isStatic\":false,\"isPublic\":true},\"findByMeasurementId\":{\"name\":\"findByMeasurementId\",\"async\":true,\"parameters\":[{\"name\":\"measurementId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream | null>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"streamType\",\"type\":\"DataStreamType\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findWebStreams\":{\"name\":\"findWebStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findIOSStreams\":{\"name\":\"findIOSStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findAndroidStreams\":{\"name\":\"findAndroidStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findMobileStreams\":{\"name\":\"findMobileStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"DataStreamStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findActiveByProperty\":{\"name\":\"findActiveByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsDataStream\",\"exportName\":\"AnalyticsDataStreamCollection\",\"collectionExportName\":\"AnalyticsDataStreamCollectionCollection\",\"schema\":{\"tableName\":\"analytics_data_streams\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_data_streams\\\" (\\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 \\\"property_id\\\" UUID,\\n \\\"display_name\\\" TEXT DEFAULT '',\\n \\\"stream_type\\\" TEXT,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"measurement_id\\\" TEXT DEFAULT '',\\n \\\"firebase_app_id\\\" TEXT DEFAULT '',\\n \\\"default_uri\\\" TEXT DEFAULT '',\\n \\\"bundle_id\\\" TEXT DEFAULT '',\\n \\\"package_name\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"enhanced_measurement\\\" BOOLEAN DEFAULT TRUE\\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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"stream_type\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"firebase_app_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"default_uri\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"bundle_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"enhanced_measurement\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":true}},\"indexes\":[{\"name\":\"analytics_data_streams_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_data_streams_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_data_streams_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_data_streams_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"851609ba\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsEventCollection\":{\"name\":\"analyticseventcollection\",\"className\":\"AnalyticsEventCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsEventCollection\",\"collection\":\"analyticsevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsEventCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByEventName\":{\"name\":\"findByEventName\",\"async\":true,\"parameters\":[{\"name\":\"eventName\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByClientId\":{\"name\":\"findByClientId\",\"async\":true,\"parameters\":[{\"name\":\"clientId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByUserId\":{\"name\":\"findByUserId\",\"async\":true,\"parameters\":[{\"name\":\"userId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"TrackingEventStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findSent\":{\"name\":\"findSent\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findForRetry\":{\"name\":\"findForRetry\",\"async\":true,\"parameters\":[{\"name\":\"maxRetries\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPendingByProperty\":{\"name\":\"findPendingByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findConversions\":{\"name\":\"findConversions\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPageviews\":{\"name\":\"findPageviews\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"countByEventName\":{\"name\":\"countByEventName\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Map<string, number>>\",\"isStatic\":false,\"isPublic\":true},\"getPropertyStats\":{\"name\":\"getPropertyStats\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"getPropertyStatsWithTrend\":{\"name\":\"getPropertyStatsWithTrend\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false},{\"name\":\"now\",\"type\":\"Date\",\"optional\":true},{\"name\":\"timeZone\",\"type\":\"string\",\"optional\":true,\"default\":\"UTC\"}],\"returnType\":\"Promise<PropertyStatsWithTrend>\",\"isStatic\":false,\"isPublic\":true},\"getBatchPropertyStats\":{\"name\":\"getBatchPropertyStats\",\"async\":true,\"parameters\":[{\"name\":\"propertyIds\",\"type\":\"string[]\",\"optional\":false},{\"name\":\"now\",\"type\":\"Date\",\"optional\":true},{\"name\":\"timeZone\",\"type\":\"string\",\"optional\":true,\"default\":\"UTC\"}],\"returnType\":\"Promise<Map<string, PropertyStatsWithTrend>>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsEvent\",\"exportName\":\"AnalyticsEventCollection\",\"collectionExportName\":\"AnalyticsEventCollectionCollection\",\"schema\":{\"tableName\":\"analytics_events\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_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 \\\"property_id\\\" UUID,\\n \\\"event_name\\\" TEXT DEFAULT '',\\n \\\"client_id\\\" TEXT DEFAULT '',\\n \\\"user_id\\\" TEXT DEFAULT '',\\n \\\"params\\\" TEXT DEFAULT '{}',\\n \\\"event_timestamp\\\" TIMESTAMP,\\n \\\"status\\\" TEXT,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"error_message\\\" TEXT DEFAULT '',\\n \\\"retry_count\\\" INTEGER DEFAULT 0,\\n \\\"non_personalized_ads\\\" BOOLEAN DEFAULT FALSE,\\n \\\"session_id\\\" TEXT DEFAULT '',\\n \\\"page_path\\\" TEXT DEFAULT '',\\n \\\"page_title\\\" TEXT DEFAULT '',\\n \\\"user_agent\\\" TEXT DEFAULT '',\\n \\\"ip_address\\\" 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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"event_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"client_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"params\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"},\"event_timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"error_message\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"retry_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"non_personalized_ads\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":false},\"session_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_path\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_title\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_agent\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"ip_address\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_events_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"bee09e1d\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsPropertyCollection\":{\"name\":\"analyticspropertycollection\",\"className\":\"AnalyticsPropertyCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsPropertyCollection\",\"collection\":\"analyticsproperties\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsPropertyCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findByMeasurementId\":{\"name\":\"findByMeasurementId\",\"async\":true,\"parameters\":[{\"name\":\"measurementId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findBySiteDomain\":{\"name\":\"findBySiteDomain\",\"async\":true,\"parameters\":[{\"name\":\"siteDomain\",\"type\":\"string\",\"optional\":false},{\"name\":\"provider\",\"type\":\"AnalyticsProvider\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findByProvider\":{\"name\":\"findByProvider\",\"async\":true,\"parameters\":[{\"name\":\"provider\",\"type\":\"AnalyticsProvider\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findGA4Properties\":{\"name\":\"findGA4Properties\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findPlausibleSites\":{\"name\":\"findPlausibleSites\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findMatomoSites\":{\"name\":\"findMatomoSites\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"AnalyticsPropertyStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findNeedingSync\":{\"name\":\"findNeedingSync\",\"async\":true,\"parameters\":[{\"name\":\"hoursAgo\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsProperty\",\"exportName\":\"AnalyticsPropertyCollection\",\"collectionExportName\":\"AnalyticsPropertyCollectionCollection\",\"schema\":{\"tableName\":\"analytics_properties\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_properties\\\" (\\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 \\\"name\\\" TEXT DEFAULT '',\\n \\\"display_name\\\" TEXT DEFAULT '',\\n \\\"provider\\\" TEXT,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"measurement_id\\\" TEXT DEFAULT '',\\n \\\"api_secret\\\" TEXT DEFAULT '',\\n \\\"site_domain\\\" TEXT DEFAULT '',\\n \\\"time_zone\\\" TEXT DEFAULT 'America/Los_Angeles',\\n \\\"currency_code\\\" TEXT DEFAULT 'USD',\\n \\\"industry_category\\\" TEXT DEFAULT '',\\n \\\"service_level\\\" TEXT DEFAULT 'STANDARD',\\n \\\"status\\\" TEXT,\\n \\\"last_sync_at\\\" TIMESTAMP,\\n \\\"provider_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},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"api_secret\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"site_domain\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"time_zone\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"America/Los_Angeles\"},\"currency_code\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"industry_category\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"service_level\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"last_sync_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"provider_metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"}},\"indexes\":[{\"name\":\"analytics_properties_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsReportCollection\":{\"name\":\"analyticsreportcollection\",\"className\":\"AnalyticsReportCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsReportCollection\",\"collection\":\"analyticsreports\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsReportCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"ReportStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findScheduled\":{\"name\":\"findScheduled\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findCompleted\":{\"name\":\"findCompleted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByFrequency\":{\"name\":\"findByFrequency\",\"async\":true,\"parameters\":[{\"name\":\"frequency\",\"type\":\"ReportFrequency\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findRecurring\":{\"name\":\"findRecurring\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findDue\":{\"name\":\"findDue\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByPropertyAndStatus\":{\"name\":\"findByPropertyAndStatus\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false},{\"name\":\"status\",\"type\":\"ReportStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findRecentlyRun\":{\"name\":\"findRecentlyRun\",\"async\":true,\"parameters\":[{\"name\":\"hoursAgo\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsReport\",\"exportName\":\"AnalyticsReportCollection\",\"collectionExportName\":\"AnalyticsReportCollectionCollection\",\"schema\":{\"tableName\":\"analytics_reports\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_reports\\\" (\\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 \\\"property_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"dimensions\\\" TEXT DEFAULT '[]',\\n \\\"metrics\\\" TEXT DEFAULT '[]',\\n \\\"date_range_start\\\" TEXT DEFAULT '7daysAgo',\\n \\\"date_range_end\\\" TEXT DEFAULT 'today',\\n \\\"dimension_filter\\\" TEXT DEFAULT '',\\n \\\"metric_filter\\\" TEXT DEFAULT '',\\n \\\"order_by\\\" TEXT DEFAULT '[]',\\n \\\"max_results\\\" INTEGER DEFAULT 0,\\n \\\"status\\\" TEXT,\\n \\\"frequency\\\" TEXT,\\n \\\"last_run_at\\\" TIMESTAMP,\\n \\\"next_run_at\\\" TIMESTAMP,\\n \\\"result_data\\\" TEXT DEFAULT '',\\n \\\"row_count\\\" INTEGER DEFAULT 0,\\n \\\"last_error\\\" 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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"date_range_start\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"7daysAgo\"},\"date_range_end\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"today\"},\"dimension_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"metric_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"order_by\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"max_results\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"frequency\":{\"type\":\"TEXT\",\"notNull\":false},\"last_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"next_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"result_data\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"row_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_reports_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_reports_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_reports_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_reports_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"22ce0f1c\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsDataStream\":{\"name\":\"analyticsdatastream\",\"className\":\"AnalyticsDataStream\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsDataStream\",\"collection\":\"analyticsdatastreams\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsDataStream.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"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}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"displayName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"streamType\":{\"type\":\"text\",\"required\":false},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"measurementId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"firebaseAppId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"defaultUri\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"bundleId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"packageName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false},\"enhancedMeasurement\":{\"type\":\"boolean\",\"required\":false,\"default\":true}},\"methods\":{\"isWeb\":{\"name\":\"isWeb\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isIOS\":{\"name\":\"isIOS\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAndroid\":{\"name\":\"isAndroid\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isMobileApp\":{\"name\":\"isMobileApp\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getPlatformId\":{\"name\":\"getPlatformId\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsDataStream\",\"collectionExportName\":\"AnalyticsDataStreamCollection\",\"schema\":{\"tableName\":\"analytics_data_streams\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_data_streams\\\" (\\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 \\\"property_id\\\" UUID,\\n \\\"display_name\\\" TEXT DEFAULT '',\\n \\\"stream_type\\\" TEXT,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"measurement_id\\\" TEXT DEFAULT '',\\n \\\"firebase_app_id\\\" TEXT DEFAULT '',\\n \\\"default_uri\\\" TEXT DEFAULT '',\\n \\\"bundle_id\\\" TEXT DEFAULT '',\\n \\\"package_name\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"enhanced_measurement\\\" BOOLEAN DEFAULT TRUE\\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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"stream_type\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"firebase_app_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"default_uri\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"bundle_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"enhanced_measurement\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":true}},\"indexes\":[{\"name\":\"analytics_data_streams_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_data_streams_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_data_streams_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_data_streams_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"851609ba\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsEvent\":{\"name\":\"analyticsevent\",\"className\":\"AnalyticsEvent\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsEvent\",\"collection\":\"analyticsevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsEvent.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"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}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"eventName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"clientId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"userId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"params\":{\"type\":\"text\",\"required\":false,\"default\":\"{}\"},\"eventTimestamp\":{\"type\":\"datetime\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"sentAt\":{\"type\":\"datetime\",\"required\":false},\"errorMessage\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"retryCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"nonPersonalizedAds\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"sessionId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"pagePath\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"pageTitle\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"userAgent\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"ipAddress\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getParams\":{\"name\":\"getParams\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, string | number | boolean>\",\"isStatic\":false,\"isPublic\":true},\"setParams\":{\"name\":\"setParams\",\"async\":false,\"parameters\":[{\"name\":\"params\",\"type\":\"Record<string, string | number | boolean>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"addParam\":{\"name\":\"addParam\",\"async\":false,\"parameters\":[{\"name\":\"key\",\"type\":\"string\",\"optional\":false},{\"name\":\"value\",\"type\":\"string | number | boolean\",\"optional\":false,\"unionBranches\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"}]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isPageview\":{\"name\":\"isPageview\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isConversion\":{\"name\":\"isConversion\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markSent\":{\"name\":\"markSent\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"error\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"resetForRetry\":{\"name\":\"resetForRetry\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"shouldRetry\":{\"name\":\"shouldRetry\",\"async\":false,\"parameters\":[{\"name\":\"maxRetries\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"toTrackEvent\":{\"name\":\"toTrackEvent\",\"async\":false,\"parameters\":[],\"returnType\":\"object\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"track\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsEvent\",\"collectionExportName\":\"AnalyticsEventCollection\",\"schema\":{\"tableName\":\"analytics_events\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_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 \\\"property_id\\\" UUID,\\n \\\"event_name\\\" TEXT DEFAULT '',\\n \\\"client_id\\\" TEXT DEFAULT '',\\n \\\"user_id\\\" TEXT DEFAULT '',\\n \\\"params\\\" TEXT DEFAULT '{}',\\n \\\"event_timestamp\\\" TIMESTAMP,\\n \\\"status\\\" TEXT,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"error_message\\\" TEXT DEFAULT '',\\n \\\"retry_count\\\" INTEGER DEFAULT 0,\\n \\\"non_personalized_ads\\\" BOOLEAN DEFAULT FALSE,\\n \\\"session_id\\\" TEXT DEFAULT '',\\n \\\"page_path\\\" TEXT DEFAULT '',\\n \\\"page_title\\\" TEXT DEFAULT '',\\n \\\"user_agent\\\" TEXT DEFAULT '',\\n \\\"ip_address\\\" 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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"event_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"client_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"params\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"},\"event_timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"error_message\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"retry_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"non_personalized_ads\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":false},\"session_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_path\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_title\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_agent\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"ip_address\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_events_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"bee09e1d\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsProperty\":{\"name\":\"analyticsproperty\",\"className\":\"AnalyticsProperty\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsProperty\",\"collection\":\"analyticsproperties\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsProperty.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"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}}},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"displayName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provider\":{\"type\":\"text\",\"required\":false},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"measurementId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"apiSecret\":{\"type\":\"text\",\"required\":false,\"default\":\"\",\"_meta\":{\"sensitive\":true},\"sensitive\":true},\"siteDomain\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"timeZone\":{\"type\":\"text\",\"required\":false,\"default\":\"America/Los_Angeles\"},\"currencyCode\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"industryCategory\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"serviceLevel\":{\"type\":\"text\",\"required\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"text\",\"required\":false},\"lastSyncAt\":{\"type\":\"datetime\",\"required\":false},\"providerMetadata\":{\"type\":\"text\",\"required\":false,\"default\":\"{}\",\"_meta\":{\"sensitive\":true},\"sensitive\":true}},\"methods\":{\"isGA4\":{\"name\":\"isGA4\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPlausible\":{\"name\":\"isPlausible\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isMatomo\":{\"name\":\"isMatomo\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getProviderMetadata\":{\"name\":\"getProviderMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setProviderMetadata\":{\"name\":\"setProviderMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markSynced\":{\"name\":\"markSynced\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"analyzePerformance\":{\"name\":\"analyzePerformance\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"object\",\"optional\":true,\"memberTypes\":[\"string\"]}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"isPerformingWell\":{\"name\":\"isPerformingWell\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"sync\",\"runReport\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsProperty\",\"collectionExportName\":\"AnalyticsPropertyCollection\",\"schema\":{\"tableName\":\"analytics_properties\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_properties\\\" (\\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 \\\"name\\\" TEXT DEFAULT '',\\n \\\"display_name\\\" TEXT DEFAULT '',\\n \\\"provider\\\" TEXT,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"measurement_id\\\" TEXT DEFAULT '',\\n \\\"api_secret\\\" TEXT DEFAULT '',\\n \\\"site_domain\\\" TEXT DEFAULT '',\\n \\\"time_zone\\\" TEXT DEFAULT 'America/Los_Angeles',\\n \\\"currency_code\\\" TEXT DEFAULT 'USD',\\n \\\"industry_category\\\" TEXT DEFAULT '',\\n \\\"service_level\\\" TEXT DEFAULT 'STANDARD',\\n \\\"status\\\" TEXT,\\n \\\"last_sync_at\\\" TIMESTAMP,\\n \\\"provider_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},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"api_secret\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"site_domain\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"time_zone\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"America/Los_Angeles\"},\"currency_code\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"industry_category\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"service_level\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"last_sync_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"provider_metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"}},\"indexes\":[{\"name\":\"analytics_properties_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsReport\":{\"name\":\"analyticsreport\",\"className\":\"AnalyticsReport\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsReport\",\"collection\":\"analyticsreports\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsReport.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"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}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"dateRangeStart\":{\"type\":\"text\",\"required\":false,\"default\":\"7daysAgo\"},\"dateRangeEnd\":{\"type\":\"text\",\"required\":false,\"default\":\"today\"},\"dimensionFilter\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"metricFilter\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"orderBy\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"maxResults\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"status\":{\"type\":\"text\",\"required\":false},\"frequency\":{\"type\":\"text\",\"required\":false},\"lastRunAt\":{\"type\":\"datetime\",\"required\":false},\"nextRunAt\":{\"type\":\"datetime\",\"required\":false},\"resultData\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"rowCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lastError\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getDimensions\":{\"name\":\"getDimensions\",\"async\":false,\"parameters\":[],\"returnType\":\"Array<object>\",\"isStatic\":false,\"isPublic\":true},\"setDimensions\":{\"name\":\"setDimensions\",\"async\":false,\"parameters\":[{\"name\":\"dimensions\",\"type\":\"Array<object>\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getMetrics\":{\"name\":\"getMetrics\",\"async\":false,\"parameters\":[],\"returnType\":\"Array<object>\",\"isStatic\":false,\"isPublic\":true},\"setMetrics\":{\"name\":\"setMetrics\",\"async\":false,\"parameters\":[{\"name\":\"metrics\",\"type\":\"Array<object>\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getResultData\":{\"name\":\"getResultData\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown> | null\",\"isStatic\":false,\"isPublic\":true},\"setResultData\":{\"name\":\"setResultData\",\"async\":false,\"parameters\":[{\"name\":\"data\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markRunning\":{\"name\":\"markRunning\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markCompleted\":{\"name\":\"markCompleted\",\"async\":false,\"parameters\":[{\"name\":\"rowCount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"error\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"calculateNextRun\":{\"name\":\"calculateNextRun\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isDue\":{\"name\":\"isDue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"analyzeResults\":{\"name\":\"analyzeResults\",\"async\":true,\"parameters\":[{\"name\":\"_options\",\"type\":\"Record<string, unknown>\",\"optional\":true}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"hasPositiveTrends\":{\"name\":\"hasPositiveTrends\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"run\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"run\",\"analyze\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsReport\",\"collectionExportName\":\"AnalyticsReportCollection\",\"schema\":{\"tableName\":\"analytics_reports\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_reports\\\" (\\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 \\\"property_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"dimensions\\\" TEXT DEFAULT '[]',\\n \\\"metrics\\\" TEXT DEFAULT '[]',\\n \\\"date_range_start\\\" TEXT DEFAULT '7daysAgo',\\n \\\"date_range_end\\\" TEXT DEFAULT 'today',\\n \\\"dimension_filter\\\" TEXT DEFAULT '',\\n \\\"metric_filter\\\" TEXT DEFAULT '',\\n \\\"order_by\\\" TEXT DEFAULT '[]',\\n \\\"max_results\\\" INTEGER DEFAULT 0,\\n \\\"status\\\" TEXT,\\n \\\"frequency\\\" TEXT,\\n \\\"last_run_at\\\" TIMESTAMP,\\n \\\"next_run_at\\\" TIMESTAMP,\\n \\\"result_data\\\" TEXT DEFAULT '',\\n \\\"row_count\\\" INTEGER DEFAULT 0,\\n \\\"last_error\\\" 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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"date_range_start\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"7daysAgo\"},\"date_range_end\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"today\"},\"dimension_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"metric_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"order_by\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"max_results\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"frequency\":{\"type\":\"TEXT\",\"notNull\":false},\"last_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"next_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"result_data\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"row_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_reports_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_reports_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_reports_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_reports_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"22ce0f1c\"},\"importPath\":\"@happyvertical/smrt-analytics\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-prompts\",\"@happyvertical/smrt-tenancy\"]}"));
5
+ ObjectRegistry.registerPackageManifest(JSON.parse("{\"version\":\"1.0.0\",\"timestamp\":0,\"packageName\":\"@happyvertical/smrt-analytics\",\"packageVersion\":\"0.51.33\",\"objects\":{\"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection\":{\"name\":\"analyticsdatastreamcollection\",\"className\":\"AnalyticsDataStreamCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsDataStreamCollection\",\"collection\":\"analyticsdatastreams\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsDataStreamCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream | null>\",\"isStatic\":false,\"isPublic\":true},\"findByMeasurementId\":{\"name\":\"findByMeasurementId\",\"async\":true,\"parameters\":[{\"name\":\"measurementId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream | null>\",\"isStatic\":false,\"isPublic\":true},\"findByType\":{\"name\":\"findByType\",\"async\":true,\"parameters\":[{\"name\":\"streamType\",\"type\":\"DataStreamType\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findWebStreams\":{\"name\":\"findWebStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findIOSStreams\":{\"name\":\"findIOSStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findAndroidStreams\":{\"name\":\"findAndroidStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findMobileStreams\":{\"name\":\"findMobileStreams\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"DataStreamStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true},\"findActiveByProperty\":{\"name\":\"findActiveByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsDataStream[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsDataStream\",\"exportName\":\"AnalyticsDataStreamCollection\",\"collectionExportName\":\"AnalyticsDataStreamCollectionCollection\",\"schema\":{\"tableName\":\"analytics_data_streams\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_data_streams\\\" (\\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 \\\"property_id\\\" UUID,\\n \\\"display_name\\\" TEXT DEFAULT '',\\n \\\"stream_type\\\" TEXT,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"measurement_id\\\" TEXT DEFAULT '',\\n \\\"firebase_app_id\\\" TEXT DEFAULT '',\\n \\\"default_uri\\\" TEXT DEFAULT '',\\n \\\"bundle_id\\\" TEXT DEFAULT '',\\n \\\"package_name\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"enhanced_measurement\\\" BOOLEAN DEFAULT TRUE\\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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"stream_type\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"firebase_app_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"default_uri\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"bundle_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"enhanced_measurement\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":true}},\"indexes\":[{\"name\":\"analytics_data_streams_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_data_streams_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_data_streams_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_data_streams_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"851609ba\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsEventCollection\":{\"name\":\"analyticseventcollection\",\"className\":\"AnalyticsEventCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsEventCollection\",\"collection\":\"analyticsevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsEventCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByEventName\":{\"name\":\"findByEventName\",\"async\":true,\"parameters\":[{\"name\":\"eventName\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByClientId\":{\"name\":\"findByClientId\",\"async\":true,\"parameters\":[{\"name\":\"clientId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByUserId\":{\"name\":\"findByUserId\",\"async\":true,\"parameters\":[{\"name\":\"userId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"TrackingEventStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPending\":{\"name\":\"findPending\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findSent\":{\"name\":\"findSent\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findForRetry\":{\"name\":\"findForRetry\",\"async\":true,\"parameters\":[{\"name\":\"maxRetries\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPendingByProperty\":{\"name\":\"findPendingByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findByDateRange\":{\"name\":\"findByDateRange\",\"async\":true,\"parameters\":[{\"name\":\"startDate\",\"type\":\"Date\",\"optional\":false},{\"name\":\"endDate\",\"type\":\"Date\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findConversions\":{\"name\":\"findConversions\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"findPageviews\":{\"name\":\"findPageviews\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsEvent[]>\",\"isStatic\":false,\"isPublic\":true},\"countByEventName\":{\"name\":\"countByEventName\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<Map<string, number>>\",\"isStatic\":false,\"isPublic\":true},\"getPropertyStats\":{\"name\":\"getPropertyStats\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"getPropertyStatsWithTrend\":{\"name\":\"getPropertyStatsWithTrend\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false},{\"name\":\"now\",\"type\":\"Date\",\"optional\":true},{\"name\":\"timeZone\",\"type\":\"string\",\"optional\":true,\"default\":\"UTC\"}],\"returnType\":\"Promise<PropertyStatsWithTrend>\",\"isStatic\":false,\"isPublic\":true},\"getBatchPropertyStats\":{\"name\":\"getBatchPropertyStats\",\"async\":true,\"parameters\":[{\"name\":\"propertyIds\",\"type\":\"string[]\",\"optional\":false},{\"name\":\"now\",\"type\":\"Date\",\"optional\":true},{\"name\":\"timeZone\",\"type\":\"string\",\"optional\":true,\"default\":\"UTC\"}],\"returnType\":\"Promise<Map<string, PropertyStatsWithTrend>>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsEvent\",\"exportName\":\"AnalyticsEventCollection\",\"collectionExportName\":\"AnalyticsEventCollectionCollection\",\"schema\":{\"tableName\":\"analytics_events\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_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 \\\"property_id\\\" UUID,\\n \\\"event_name\\\" TEXT DEFAULT '',\\n \\\"client_id\\\" TEXT DEFAULT '',\\n \\\"user_id\\\" TEXT DEFAULT '',\\n \\\"params\\\" TEXT DEFAULT '{}',\\n \\\"event_timestamp\\\" TIMESTAMP,\\n \\\"status\\\" TEXT,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"error_message\\\" TEXT DEFAULT '',\\n \\\"retry_count\\\" INTEGER DEFAULT 0,\\n \\\"non_personalized_ads\\\" BOOLEAN DEFAULT FALSE,\\n \\\"session_id\\\" TEXT DEFAULT '',\\n \\\"page_path\\\" TEXT DEFAULT '',\\n \\\"page_title\\\" TEXT DEFAULT '',\\n \\\"user_agent\\\" TEXT DEFAULT '',\\n \\\"ip_address\\\" 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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"event_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"client_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"params\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"},\"event_timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"error_message\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"retry_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"non_personalized_ads\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":false},\"session_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_path\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_title\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_agent\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"ip_address\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_events_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"bee09e1d\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsPropertyCollection\":{\"name\":\"analyticspropertycollection\",\"className\":\"AnalyticsPropertyCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsPropertyCollection\",\"collection\":\"analyticsproperties\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsPropertyCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByExternalId\":{\"name\":\"findByExternalId\",\"async\":true,\"parameters\":[{\"name\":\"externalId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findByMeasurementId\":{\"name\":\"findByMeasurementId\",\"async\":true,\"parameters\":[{\"name\":\"measurementId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findBySiteDomain\":{\"name\":\"findBySiteDomain\",\"async\":true,\"parameters\":[{\"name\":\"siteDomain\",\"type\":\"string\",\"optional\":false},{\"name\":\"provider\",\"type\":\"AnalyticsProvider\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsProperty | null>\",\"isStatic\":false,\"isPublic\":true},\"findByProvider\":{\"name\":\"findByProvider\",\"async\":true,\"parameters\":[{\"name\":\"provider\",\"type\":\"AnalyticsProvider\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findGA4Properties\":{\"name\":\"findGA4Properties\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findPlausibleSites\":{\"name\":\"findPlausibleSites\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findMatomoSites\":{\"name\":\"findMatomoSites\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"AnalyticsPropertyStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findActive\":{\"name\":\"findActive\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true},\"findNeedingSync\":{\"name\":\"findNeedingSync\",\"async\":true,\"parameters\":[{\"name\":\"hoursAgo\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsProperty[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsProperty\",\"exportName\":\"AnalyticsPropertyCollection\",\"collectionExportName\":\"AnalyticsPropertyCollectionCollection\",\"schema\":{\"tableName\":\"analytics_properties\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_properties\\\" (\\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 \\\"name\\\" TEXT DEFAULT '',\\n \\\"display_name\\\" TEXT DEFAULT '',\\n \\\"provider\\\" TEXT,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"measurement_id\\\" TEXT DEFAULT '',\\n \\\"api_secret\\\" TEXT DEFAULT '',\\n \\\"site_domain\\\" TEXT DEFAULT '',\\n \\\"time_zone\\\" TEXT DEFAULT 'America/Los_Angeles',\\n \\\"currency_code\\\" TEXT DEFAULT 'USD',\\n \\\"industry_category\\\" TEXT DEFAULT '',\\n \\\"service_level\\\" TEXT DEFAULT 'STANDARD',\\n \\\"status\\\" TEXT,\\n \\\"last_sync_at\\\" TIMESTAMP,\\n \\\"provider_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},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"api_secret\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"site_domain\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"time_zone\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"America/Los_Angeles\"},\"currency_code\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"industry_category\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"service_level\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"last_sync_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"provider_metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"}},\"indexes\":[{\"name\":\"analytics_properties_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsReportCollection\":{\"name\":\"analyticsreportcollection\",\"className\":\"AnalyticsReportCollection\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsReportCollection\",\"collection\":\"analyticsreports\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/collections/AnalyticsReportCollection.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"fields\":{},\"methods\":{\"findByProperty\":{\"name\":\"findByProperty\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByStatus\":{\"name\":\"findByStatus\",\"async\":true,\"parameters\":[{\"name\":\"status\",\"type\":\"ReportStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findDrafts\":{\"name\":\"findDrafts\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findScheduled\":{\"name\":\"findScheduled\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findCompleted\":{\"name\":\"findCompleted\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findFailed\":{\"name\":\"findFailed\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByFrequency\":{\"name\":\"findByFrequency\",\"async\":true,\"parameters\":[{\"name\":\"frequency\",\"type\":\"ReportFrequency\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findRecurring\":{\"name\":\"findRecurring\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findDue\":{\"name\":\"findDue\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findByPropertyAndStatus\":{\"name\":\"findByPropertyAndStatus\",\"async\":true,\"parameters\":[{\"name\":\"propertyId\",\"type\":\"string\",\"optional\":false},{\"name\":\"status\",\"type\":\"ReportStatus\",\"optional\":false}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true},\"findRecentlyRun\":{\"name\":\"findRecentlyRun\",\"async\":true,\"parameters\":[{\"name\":\"hoursAgo\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"Promise<AnalyticsReport[]>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{},\"extends\":\"SmrtCollection\",\"extendsTypeArg\":\"AnalyticsReport\",\"exportName\":\"AnalyticsReportCollection\",\"collectionExportName\":\"AnalyticsReportCollectionCollection\",\"schema\":{\"tableName\":\"analytics_reports\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_reports\\\" (\\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 \\\"property_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"dimensions\\\" TEXT DEFAULT '[]',\\n \\\"metrics\\\" TEXT DEFAULT '[]',\\n \\\"date_range_start\\\" TEXT DEFAULT '7daysAgo',\\n \\\"date_range_end\\\" TEXT DEFAULT 'today',\\n \\\"dimension_filter\\\" TEXT DEFAULT '',\\n \\\"metric_filter\\\" TEXT DEFAULT '',\\n \\\"order_by\\\" TEXT DEFAULT '[]',\\n \\\"max_results\\\" INTEGER DEFAULT 0,\\n \\\"status\\\" TEXT,\\n \\\"frequency\\\" TEXT,\\n \\\"last_run_at\\\" TIMESTAMP,\\n \\\"next_run_at\\\" TIMESTAMP,\\n \\\"result_data\\\" TEXT DEFAULT '',\\n \\\"row_count\\\" INTEGER DEFAULT 0,\\n \\\"last_error\\\" 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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"date_range_start\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"7daysAgo\"},\"date_range_end\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"today\"},\"dimension_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"metric_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"order_by\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"max_results\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"frequency\":{\"type\":\"TEXT\",\"notNull\":false},\"last_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"next_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"result_data\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"row_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_reports_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_reports_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_reports_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_reports_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"22ce0f1c\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsDataStream\":{\"name\":\"analyticsdatastream\",\"className\":\"AnalyticsDataStream\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsDataStream\",\"collection\":\"analyticsdatastreams\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsDataStream.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"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}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"displayName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"streamType\":{\"type\":\"text\",\"required\":false},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"measurementId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"firebaseAppId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"defaultUri\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"bundleId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"packageName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"status\":{\"type\":\"text\",\"required\":false},\"enhancedMeasurement\":{\"type\":\"boolean\",\"required\":false,\"default\":true}},\"methods\":{\"isWeb\":{\"name\":\"isWeb\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isIOS\":{\"name\":\"isIOS\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isAndroid\":{\"name\":\"isAndroid\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isMobileApp\":{\"name\":\"isMobileApp\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getPlatformId\":{\"name\":\"getPlatformId\",\"async\":false,\"parameters\":[],\"returnType\":\"string\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsDataStream\",\"collectionExportName\":\"AnalyticsDataStreamCollection\",\"schema\":{\"tableName\":\"analytics_data_streams\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_data_streams\\\" (\\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 \\\"property_id\\\" UUID,\\n \\\"display_name\\\" TEXT DEFAULT '',\\n \\\"stream_type\\\" TEXT,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"measurement_id\\\" TEXT DEFAULT '',\\n \\\"firebase_app_id\\\" TEXT DEFAULT '',\\n \\\"default_uri\\\" TEXT DEFAULT '',\\n \\\"bundle_id\\\" TEXT DEFAULT '',\\n \\\"package_name\\\" TEXT DEFAULT '',\\n \\\"status\\\" TEXT,\\n \\\"enhanced_measurement\\\" BOOLEAN DEFAULT TRUE\\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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"stream_type\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"firebase_app_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"default_uri\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"bundle_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"package_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"enhanced_measurement\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":true}},\"indexes\":[{\"name\":\"analytics_data_streams_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_data_streams_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_data_streams_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_data_streams_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"851609ba\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsEvent\":{\"name\":\"analyticsevent\",\"className\":\"AnalyticsEvent\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsEvent\",\"collection\":\"analyticsevents\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsEvent.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"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}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"eventName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"clientId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"userId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"params\":{\"type\":\"text\",\"required\":false,\"default\":\"{}\"},\"eventTimestamp\":{\"type\":\"datetime\",\"required\":false},\"status\":{\"type\":\"text\",\"required\":false},\"sentAt\":{\"type\":\"datetime\",\"required\":false},\"errorMessage\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"retryCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"nonPersonalizedAds\":{\"type\":\"boolean\",\"required\":false,\"default\":false},\"sessionId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"pagePath\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"pageTitle\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"userAgent\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"ipAddress\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getParams\":{\"name\":\"getParams\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, string | number | boolean>\",\"isStatic\":false,\"isPublic\":true},\"setParams\":{\"name\":\"setParams\",\"async\":false,\"parameters\":[{\"name\":\"params\",\"type\":\"Record<string, string | number | boolean>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"addParam\":{\"name\":\"addParam\",\"async\":false,\"parameters\":[{\"name\":\"key\",\"type\":\"string\",\"optional\":false},{\"name\":\"value\",\"type\":\"string | number | boolean\",\"optional\":false,\"unionBranches\":[{\"type\":\"string\"},{\"type\":\"number\"},{\"type\":\"boolean\"}]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isPageview\":{\"name\":\"isPageview\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isConversion\":{\"name\":\"isConversion\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"markSent\":{\"name\":\"markSent\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"error\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"resetForRetry\":{\"name\":\"resetForRetry\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"shouldRetry\":{\"name\":\"shouldRetry\",\"async\":false,\"parameters\":[{\"name\":\"maxRetries\",\"type\":\"number\",\"optional\":true}],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"toTrackEvent\":{\"name\":\"toTrackEvent\",\"async\":false,\"parameters\":[],\"returnType\":\"object\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"track\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsEvent\",\"collectionExportName\":\"AnalyticsEventCollection\",\"schema\":{\"tableName\":\"analytics_events\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_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 \\\"property_id\\\" UUID,\\n \\\"event_name\\\" TEXT DEFAULT '',\\n \\\"client_id\\\" TEXT DEFAULT '',\\n \\\"user_id\\\" TEXT DEFAULT '',\\n \\\"params\\\" TEXT DEFAULT '{}',\\n \\\"event_timestamp\\\" TIMESTAMP,\\n \\\"status\\\" TEXT,\\n \\\"sent_at\\\" TIMESTAMP,\\n \\\"error_message\\\" TEXT DEFAULT '',\\n \\\"retry_count\\\" INTEGER DEFAULT 0,\\n \\\"non_personalized_ads\\\" BOOLEAN DEFAULT FALSE,\\n \\\"session_id\\\" TEXT DEFAULT '',\\n \\\"page_path\\\" TEXT DEFAULT '',\\n \\\"page_title\\\" TEXT DEFAULT '',\\n \\\"user_agent\\\" TEXT DEFAULT '',\\n \\\"ip_address\\\" 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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"event_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"client_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"params\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"},\"event_timestamp\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"sent_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"error_message\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"retry_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"non_personalized_ads\":{\"type\":\"BOOLEAN\",\"notNull\":false,\"default\":false},\"session_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_path\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"page_title\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"user_agent\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"ip_address\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_events_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_events_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_events_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_events_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"bee09e1d\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsProperty\":{\"name\":\"analyticsproperty\",\"className\":\"AnalyticsProperty\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsProperty\",\"collection\":\"analyticsproperties\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsProperty.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"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}}},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"displayName\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"provider\":{\"type\":\"text\",\"required\":false},\"externalId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"measurementId\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"apiSecret\":{\"type\":\"text\",\"required\":false,\"default\":\"\",\"_meta\":{\"sensitive\":true},\"sensitive\":true},\"siteDomain\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"timeZone\":{\"type\":\"text\",\"required\":false,\"default\":\"America/Los_Angeles\"},\"currencyCode\":{\"type\":\"text\",\"required\":false,\"default\":\"USD\"},\"industryCategory\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"serviceLevel\":{\"type\":\"text\",\"required\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"text\",\"required\":false},\"lastSyncAt\":{\"type\":\"datetime\",\"required\":false},\"providerMetadata\":{\"type\":\"text\",\"required\":false,\"default\":\"{}\",\"_meta\":{\"sensitive\":true},\"sensitive\":true}},\"methods\":{\"isGA4\":{\"name\":\"isGA4\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isPlausible\":{\"name\":\"isPlausible\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"isMatomo\":{\"name\":\"isMatomo\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"getProviderMetadata\":{\"name\":\"getProviderMetadata\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown>\",\"isStatic\":false,\"isPublic\":true},\"setProviderMetadata\":{\"name\":\"setProviderMetadata\",\"async\":false,\"parameters\":[{\"name\":\"metadata\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markSynced\":{\"name\":\"markSynced\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"analyzePerformance\":{\"name\":\"analyzePerformance\",\"async\":true,\"parameters\":[{\"name\":\"options\",\"type\":\"object\",\"optional\":true,\"memberTypes\":[\"string\"]}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"isPerformingWell\":{\"name\":\"isPerformingWell\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"sync\",\"runReport\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsProperty\",\"collectionExportName\":\"AnalyticsPropertyCollection\",\"schema\":{\"tableName\":\"analytics_properties\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_properties\\\" (\\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 \\\"name\\\" TEXT DEFAULT '',\\n \\\"display_name\\\" TEXT DEFAULT '',\\n \\\"provider\\\" TEXT,\\n \\\"external_id\\\" TEXT DEFAULT '',\\n \\\"measurement_id\\\" TEXT DEFAULT '',\\n \\\"api_secret\\\" TEXT DEFAULT '',\\n \\\"site_domain\\\" TEXT DEFAULT '',\\n \\\"time_zone\\\" TEXT DEFAULT 'America/Los_Angeles',\\n \\\"currency_code\\\" TEXT DEFAULT 'USD',\\n \\\"industry_category\\\" TEXT DEFAULT '',\\n \\\"service_level\\\" TEXT DEFAULT 'STANDARD',\\n \\\"status\\\" TEXT,\\n \\\"last_sync_at\\\" TIMESTAMP,\\n \\\"provider_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},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"display_name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"provider\":{\"type\":\"TEXT\",\"notNull\":false},\"external_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"measurement_id\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"api_secret\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"site_domain\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"time_zone\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"America/Los_Angeles\"},\"currency_code\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"USD\"},\"industry_category\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"service_level\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"STANDARD\"},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"last_sync_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"provider_metadata\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"{}\"}},\"indexes\":[{\"name\":\"analytics_properties_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_properties_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_properties_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]}],\"version\":\"f38a20b9\"},\"importPath\":\"@happyvertical/smrt-analytics\"},\"@happyvertical/smrt-analytics:AnalyticsReport\":{\"name\":\"analyticsreport\",\"className\":\"AnalyticsReport\",\"qualifiedName\":\"@happyvertical/smrt-analytics:AnalyticsReport\",\"collection\":\"analyticsreports\",\"filePath\":\"/home/runner/work/smrt/smrt/packages/analytics/src/models/AnalyticsReport.ts\",\"packageName\":\"@happyvertical/smrt-analytics\",\"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}}},\"propertyId\":{\"type\":\"foreignKey\",\"required\":false,\"related\":\"AnalyticsProperty\"},\"name\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"description\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"dateRangeStart\":{\"type\":\"text\",\"required\":false,\"default\":\"7daysAgo\"},\"dateRangeEnd\":{\"type\":\"text\",\"required\":false,\"default\":\"today\"},\"dimensionFilter\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"metricFilter\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"orderBy\":{\"type\":\"text\",\"required\":false,\"default\":\"[]\"},\"maxResults\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"status\":{\"type\":\"text\",\"required\":false},\"frequency\":{\"type\":\"text\",\"required\":false},\"lastRunAt\":{\"type\":\"datetime\",\"required\":false},\"nextRunAt\":{\"type\":\"datetime\",\"required\":false},\"resultData\":{\"type\":\"text\",\"required\":false,\"default\":\"\"},\"rowCount\":{\"type\":\"integer\",\"required\":false,\"default\":0},\"lastError\":{\"type\":\"text\",\"required\":false,\"default\":\"\"}},\"methods\":{\"getDimensions\":{\"name\":\"getDimensions\",\"async\":false,\"parameters\":[],\"returnType\":\"Array<object>\",\"isStatic\":false,\"isPublic\":true},\"setDimensions\":{\"name\":\"setDimensions\",\"async\":false,\"parameters\":[{\"name\":\"dimensions\",\"type\":\"Array<object>\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getMetrics\":{\"name\":\"getMetrics\",\"async\":false,\"parameters\":[],\"returnType\":\"Array<object>\",\"isStatic\":false,\"isPublic\":true},\"setMetrics\":{\"name\":\"setMetrics\",\"async\":false,\"parameters\":[{\"name\":\"metrics\",\"type\":\"Array<object>\",\"optional\":false,\"memberTypes\":[\"string\"]}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"getResultData\":{\"name\":\"getResultData\",\"async\":false,\"parameters\":[],\"returnType\":\"Record<string, unknown> | null\",\"isStatic\":false,\"isPublic\":true},\"setResultData\":{\"name\":\"setResultData\",\"async\":false,\"parameters\":[{\"name\":\"data\",\"type\":\"Record<string, unknown>\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markRunning\":{\"name\":\"markRunning\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markCompleted\":{\"name\":\"markCompleted\",\"async\":false,\"parameters\":[{\"name\":\"rowCount\",\"type\":\"number\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"markFailed\":{\"name\":\"markFailed\",\"async\":false,\"parameters\":[{\"name\":\"error\",\"type\":\"string\",\"optional\":false}],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"calculateNextRun\":{\"name\":\"calculateNextRun\",\"async\":false,\"parameters\":[],\"returnType\":\"void\",\"isStatic\":false,\"isPublic\":true},\"isDue\":{\"name\":\"isDue\",\"async\":false,\"parameters\":[],\"returnType\":\"boolean\",\"isStatic\":false,\"isPublic\":true},\"analyzeResults\":{\"name\":\"analyzeResults\",\"async\":true,\"parameters\":[{\"name\":\"_options\",\"type\":\"Record<string, unknown>\",\"optional\":true}],\"returnType\":\"Promise<object>\",\"isStatic\":false,\"isPublic\":true},\"hasPositiveTrends\":{\"name\":\"hasPositiveTrends\",\"async\":true,\"parameters\":[],\"returnType\":\"Promise<boolean>\",\"isStatic\":false,\"isPublic\":true}},\"decoratorConfig\":{\"tableStrategy\":\"sti\",\"api\":{\"include\":[\"list\",\"get\",\"create\",\"update\",\"run\"]},\"mcp\":{\"include\":[\"list\",\"get\",\"run\",\"analyze\"]},\"cli\":{\"skipApiCheck\":true},\"tenantScoped\":{\"mode\":\"optional\"},\"conflictColumns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"]},\"extends\":\"SmrtObject\",\"exportName\":\"AnalyticsReport\",\"collectionExportName\":\"AnalyticsReportCollection\",\"schema\":{\"tableName\":\"analytics_reports\",\"ddl\":\"CREATE TABLE IF NOT EXISTS \\\"analytics_reports\\\" (\\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 \\\"property_id\\\" UUID,\\n \\\"name\\\" TEXT DEFAULT '',\\n \\\"description\\\" TEXT DEFAULT '',\\n \\\"dimensions\\\" TEXT DEFAULT '[]',\\n \\\"metrics\\\" TEXT DEFAULT '[]',\\n \\\"date_range_start\\\" TEXT DEFAULT '7daysAgo',\\n \\\"date_range_end\\\" TEXT DEFAULT 'today',\\n \\\"dimension_filter\\\" TEXT DEFAULT '',\\n \\\"metric_filter\\\" TEXT DEFAULT '',\\n \\\"order_by\\\" TEXT DEFAULT '[]',\\n \\\"max_results\\\" INTEGER DEFAULT 0,\\n \\\"status\\\" TEXT,\\n \\\"frequency\\\" TEXT,\\n \\\"last_run_at\\\" TIMESTAMP,\\n \\\"next_run_at\\\" TIMESTAMP,\\n \\\"result_data\\\" TEXT DEFAULT '',\\n \\\"row_count\\\" INTEGER DEFAULT 0,\\n \\\"last_error\\\" 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},\"property_id\":{\"type\":\"UUID\",\"referenceKind\":\"foreignKey\",\"notNull\":false,\"foreignKey\":{\"table\":\"analytics_properties\",\"column\":\"id\",\"onDelete\":\"NO ACTION\",\"onUpdate\":\"CASCADE\"}},\"name\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"description\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"dimensions\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"metrics\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"date_range_start\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"7daysAgo\"},\"date_range_end\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"today\"},\"dimension_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"metric_filter\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"order_by\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"[]\"},\"max_results\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"status\":{\"type\":\"TEXT\",\"notNull\":false},\"frequency\":{\"type\":\"TEXT\",\"notNull\":false},\"last_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"next_run_at\":{\"type\":\"TIMESTAMP\",\"notNull\":false},\"result_data\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"},\"row_count\":{\"type\":\"INTEGER\",\"notNull\":false,\"default\":0},\"last_error\":{\"type\":\"TEXT\",\"notNull\":false,\"default\":\"\"}},\"indexes\":[{\"name\":\"analytics_reports_slug_context_meta_type_idx\",\"columns\":[\"tenant_id\",\"slug\",\"context\",\"_meta_type\"],\"unique\":true,\"nullsNotDistinct\":true},{\"name\":\"analytics_reports_meta_type_idx\",\"columns\":[\"_meta_type\"]},{\"name\":\"analytics_reports_tenant_id_created_at_idx\",\"columns\":[\"tenant_id\",\"created_at\"]},{\"name\":\"analytics_reports_property_id_idx\",\"columns\":[\"property_id\"]}],\"version\":\"22ce0f1c\"},\"importPath\":\"@happyvertical/smrt-analytics\"}},\"moduleType\":\"smrt\",\"smrtDependencies\":[\"@happyvertical/smrt-core\",\"@happyvertical/smrt-prompts\",\"@happyvertical/smrt-tenancy\"]}"));
6
6
  //#endregion
7
7
  //#region src/prompts.ts
8
8
  var smrtAnalyticsAnalyzePerformancePrompt = definePrompt({
@@ -1500,11 +1500,20 @@ var AnalyticsReport = class extends SmrtObject {
1500
1500
  * carry PII the caller persisted; see `analyzeResults` docstring and
1501
1501
  * `../prompts.ts`.
1502
1502
  *
1503
- * Boolean coercion uses `/^\s*(yes|true)\b/i` against the trimmed
1504
- * response. The registered prompt template explicitly instructs the
1505
- * model to begin its answer with the literal word "yes" or "no" so
1506
- * this regex is reliable; tenant overrides MUST preserve that leading-
1507
- * word convention or the boolean will silently fall to `false`.
1503
+ * When a typed-decision provider is configured and this object has no
1504
+ * registered tools, the resolved prompt is sent as one bounded predicate
1505
+ * request. The report's selected metrics and persisted aggregate data are
1506
+ * the complete decision state; object fields and internal filters are never
1507
+ * added. The decision uses the configured threshold (default `0.5`). A
1508
+ * configured uncertainty band falls back to the same resolved generative
1509
+ * prompt, matching `SmrtObject.evaluate()`; provider, capability, and
1510
+ * malformed-response errors propagate.
1511
+ *
1512
+ * Without a decision provider, or where tools require the generative route,
1513
+ * Boolean coercion uses `/^\s*(yes|true)\b/i` against the trimmed response.
1514
+ * The registered prompt template explicitly instructs the model to begin its
1515
+ * answer with the literal word "yes" or "no" so this legacy route remains
1516
+ * compatible; tenant overrides MUST preserve that leading-word convention.
1508
1517
  */
1509
1518
  async hasPositiveTrends() {
1510
1519
  const resultData = this.getResultData();
@@ -1516,6 +1525,33 @@ var AnalyticsReport = class extends SmrtObject {
1516
1525
  reportData: JSON.stringify(resultData)
1517
1526
  }
1518
1527
  });
1528
+ if (this.getAvailableTools().length === 0) {
1529
+ const config = this.getDecisionConfig();
1530
+ const threshold = config?.threshold ?? .5;
1531
+ if (!Number.isFinite(threshold) || threshold < 0 || threshold > 1) throw new Error("Decision threshold must be a finite number in [0, 1].");
1532
+ const uncertaintyBand = config?.uncertaintyFallback?.band;
1533
+ if (uncertaintyBand !== void 0 && (!Number.isFinite(uncertaintyBand) || uncertaintyBand < 0 || uncertaintyBand > 1)) throw new Error("Decision uncertainty fallback band must be a finite number in [0, 1].");
1534
+ const decision = await this.attemptDecision({
1535
+ state: {
1536
+ reportMetrics: this.metrics || "[]",
1537
+ reportData: JSON.stringify(resultData)
1538
+ },
1539
+ questions: { result: {
1540
+ type: "predicate",
1541
+ instructions: `${resolvedPrompt.text}
1542
+
1543
+ For this predicate, only treat higher values as favorable for user growth, engagement, and conversions. Treat higher bounce or error rates as adverse. Do not infer a direction for an unknown metric. A date-range label alone does not establish comparable periods; if the supplied data is incomplete, lacks a comparable period, or is otherwise insufficient or ambiguous, answer false.`
1544
+ } }
1545
+ });
1546
+ if (decision) {
1547
+ const answer = decision.answers.result;
1548
+ if (answer?.type !== "predicate") throw new Error("Decision provider returned no predicate result.");
1549
+ const probability = answer.probability;
1550
+ if (uncertaintyBand !== void 0) {
1551
+ if (probability < Math.max(0, threshold - uncertaintyBand) || probability > Math.min(1, threshold + uncertaintyBand)) return probability >= threshold;
1552
+ } else return probability >= threshold;
1553
+ }
1554
+ }
1519
1555
  const response = (await (await this.getAiClient()).message(resolvedPrompt.text, promptMessageOptions(resolvedPrompt.ai))).trim();
1520
1556
  return /^\s*(yes|true)\b/i.test(response);
1521
1557
  }