@brimble/models 3.8.168 → 3.8.170

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.
@@ -0,0 +1,47 @@
1
+ import { model, Schema } from "mongoose";
2
+ import { IChangelogCampaign } from "./types";
3
+
4
+ const changelogEmailPayloadEntrySchema = new Schema(
5
+ {
6
+ category: { type: String, required: true, enum: ["new", "improved", "fixed"] },
7
+ title: { type: String, required: true },
8
+ description: { type: String, required: true },
9
+ link: {
10
+ type: new Schema(
11
+ {
12
+ label: { type: String, required: true },
13
+ url: { type: String, required: true },
14
+ },
15
+ { _id: false },
16
+ ),
17
+ required: false,
18
+ },
19
+ },
20
+ { _id: false },
21
+ );
22
+
23
+ const changelogCampaignSchema = new Schema<IChangelogCampaign>(
24
+ {
25
+ period_label: { type: String, required: true },
26
+ period_start: { type: Date, required: true },
27
+ period_end: { type: Date, required: true },
28
+ subject: { type: String, required: true },
29
+ intro: { type: String },
30
+ entry_ids: [{ type: Schema.Types.ObjectId, ref: "ChangelogEntry", required: true }],
31
+ email_payload: { type: [changelogEmailPayloadEntrySchema], default: [] },
32
+ auto_send: { type: Boolean, required: true, default: true },
33
+ status: { type: String, required: true, index: true },
34
+ preview_at: { type: Date, required: true, index: true },
35
+ send_at: { type: Date, required: true, index: true },
36
+ preview_sent_at: { type: Date, default: null },
37
+ sent_at: { type: Date, default: null },
38
+ idempotency_key: { type: String, required: true, unique: true },
39
+ skipped_entry_ids: [{ type: Schema.Types.ObjectId, ref: "ChangelogEntry", default: [] }],
40
+ },
41
+ { timestamps: { createdAt: "created_at", updatedAt: "updated_at" }, collection: "changelog_campaigns" },
42
+ );
43
+
44
+ changelogCampaignSchema.index({ status: 1, preview_at: 1 });
45
+ changelogCampaignSchema.index({ status: 1, send_at: 1 });
46
+
47
+ export default model<IChangelogCampaign>("ChangelogCampaign", changelogCampaignSchema);
@@ -12,8 +12,12 @@ const changelogEntrySchema = new Schema(
12
12
  type: { type: String },
13
13
  summary: { type: String },
14
14
  content: { type: String },
15
+ emailed_at: { type: Date, default: null, index: true },
16
+ email_campaign_id: { type: Schema.Types.ObjectId, default: null, index: true },
15
17
  },
16
18
  { timestamps: true, collection: "entries" },
17
19
  );
18
20
 
21
+ changelogEntrySchema.index({ status: 1, emailed_at: 1, date: -1 });
22
+
19
23
  export default model<IChangelogEntry>("ChangelogEntry", changelogEntrySchema);
@@ -0,0 +1,9 @@
1
+ import { IChangelogCampaign } from "./types";
2
+ declare const _default: import("mongoose").Model<IChangelogCampaign, {}, {}, {}, import("mongoose").Document<unknown, {}, IChangelogCampaign, {}, import("mongoose").DefaultSchemaOptions> & IChangelogCampaign & Required<{
3
+ _id: import("mongoose").Types.ObjectId;
4
+ }> & {
5
+ __v: number;
6
+ } & {
7
+ id: string;
8
+ }, any, IChangelogCampaign>;
9
+ export default _default;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const mongoose_1 = require("mongoose");
4
+ const changelogEmailPayloadEntrySchema = new mongoose_1.Schema({
5
+ category: { type: String, required: true, enum: ["new", "improved", "fixed"] },
6
+ title: { type: String, required: true },
7
+ description: { type: String, required: true },
8
+ link: {
9
+ type: new mongoose_1.Schema({
10
+ label: { type: String, required: true },
11
+ url: { type: String, required: true },
12
+ }, { _id: false }),
13
+ required: false,
14
+ },
15
+ }, { _id: false });
16
+ const changelogCampaignSchema = new mongoose_1.Schema({
17
+ period_label: { type: String, required: true },
18
+ period_start: { type: Date, required: true },
19
+ period_end: { type: Date, required: true },
20
+ subject: { type: String, required: true },
21
+ intro: { type: String },
22
+ entry_ids: [{ type: mongoose_1.Schema.Types.ObjectId, ref: "ChangelogEntry", required: true }],
23
+ email_payload: { type: [changelogEmailPayloadEntrySchema], default: [] },
24
+ auto_send: { type: Boolean, required: true, default: true },
25
+ status: { type: String, required: true, index: true },
26
+ preview_at: { type: Date, required: true, index: true },
27
+ send_at: { type: Date, required: true, index: true },
28
+ preview_sent_at: { type: Date, default: null },
29
+ sent_at: { type: Date, default: null },
30
+ idempotency_key: { type: String, required: true, unique: true },
31
+ skipped_entry_ids: [{ type: mongoose_1.Schema.Types.ObjectId, ref: "ChangelogEntry", default: [] }],
32
+ }, { timestamps: { createdAt: "created_at", updatedAt: "updated_at" }, collection: "changelog_campaigns" });
33
+ changelogCampaignSchema.index({ status: 1, preview_at: 1 });
34
+ changelogCampaignSchema.index({ status: 1, send_at: 1 });
35
+ exports.default = (0, mongoose_1.model)("ChangelogCampaign", changelogCampaignSchema);
@@ -11,5 +11,8 @@ const changelogEntrySchema = new mongoose_1.Schema({
11
11
  type: { type: String },
12
12
  summary: { type: String },
13
13
  content: { type: String },
14
+ emailed_at: { type: Date, default: null, index: true },
15
+ email_campaign_id: { type: mongoose_1.Schema.Types.ObjectId, default: null, index: true },
14
16
  }, { timestamps: true, collection: "entries" });
17
+ changelogEntrySchema.index({ status: 1, emailed_at: 1, date: -1 });
15
18
  exports.default = (0, mongoose_1.model)("ChangelogEntry", changelogEntrySchema);
package/dist/index.d.ts CHANGED
@@ -96,6 +96,7 @@ export { default as Ticket } from "./ticket";
96
96
  export { default as CareerRole } from "./career-role";
97
97
  export { default as BlogPost } from "./blog-post";
98
98
  export { default as ChangelogEntry } from "./changelog-entry";
99
+ export { default as ChangelogCampaign } from "./changelog-campaign";
99
100
  export { default as AgentChat } from "./agent-chat";
100
101
  export { default as AgentChatMessage } from "./agent-chat-message";
101
102
  export { default as AgentChatFile } from "./agent-chat-file";
@@ -105,7 +106,7 @@ export { default as AgentWebsiteSnapshot } from "./agent-website-snapshot";
105
106
  export { default as AgentWebsiteFileOverlay } from "./agent-website-file-overlay";
106
107
  export { default as AgentDesignSkill } from "./agent-design-skill";
107
108
  export { default as AgentDesignSkillRevision } from "./agent-design-skill-revision";
108
- export { IUser, IGit, IOrigin, IProject, IProjectAnalytics, IPreview, IProjectConnection, IProjectNetworkSettings, IRatelimit, RatelimitConfig, RateLimitZone, RateLimitMatcher, DistributedRateLimitConfig, IFollowing, IIntegration, IEnv, IServer, IDomain, IToken, IPlatformApiKey, IMember, ITeam, IInstalledIntegration, ILog, ISubscription, ICard, IPaymentMethod, IDns, IDnsChangeLog, IRole, IPermission, IMemberPermission, IWallet, IDbImage, IJob, ILicense, IPlanConfiguration, IAutoScalingGroup, IComputeChange, IRegion, IVolume, IFramework, BrimbleFrameworkType, ISettings, ILoadBalancerPort, IDomainRenewal, IDomainTransfer, IWebhookCategory, IWebhookEvent, IWebhookSetting, IIntention, IProvider, ICollabAnnotation, ICollabComment, ICollabAttachment, ICollabIntegration, ICollabSettings, ICollabShareToken, ICollabPushSubscription, IAppMessage, IInvoice, ITag, IProjectTagAssignment, ICashierSubscription, ICashierSubscriptionItem, IProjectEnvironment, IEnvironmentVariable, IProjectConfigFile, IActivityLog, IAlertRule, IAlertRuleState, IAlertEvent, IAlertNotificationResult, IDrain, IProjectDrainSubscription, IOwnershipTransfer, ISandbox, ISandboxSpecs, ISandboxActivity, ISandboxImage, ISandboxSize, ISandboxSnapshot, IBackupHistory, IDatabaseUser, IRestoreHistory, IWorkerRun, ISandboxSnapshotUsageSegment, ISandboxSnapshotUsageSegmentCosts, ISandboxUsageSegment, ISandboxUsageSegmentCurrent, ISandboxUsageSegmentCosts, IVolumeUsageSegment, IVolumeUsageSegmentCosts, IPgBouncerUsageSegment, IPgBouncerUsageSegmentCosts, IObjectStorageUsageSegment, IObjectStorageUsageSegmentCosts, IObjectStorageUsageUnitsSummary, IIdempotencyRecord, IStorageBucket, IStorageObject, IStorageUpload, IStorageToken, IStorageCredential, IStorageMigration, StorageTokenPermission, StorageLifecycleRule, StorageCorsRule, StorageLifecycleRuleTransition, IStreak, IStreakMilestoneRef, IStreakEvent, IStreakDay, IStreakMilestone, IQuestCampaign, IQuestCriterion, IQuestRequirement, IQuestReward, IQuestParticipation, IQuestCriterionProgress, IQuestRewardIssuance, IQuestIssuedReward, ICoupon, ICouponRedemption, ITicket, ICareerRole, IBlogPost, IChangelogEntry, IAgentChat, IAgentChatMessage, IAgentChatFile, IAgentChatModel, IAgentWebsite, IAgentWebsiteSnapshot, IAgentWebsiteFileOverlay, IAgentDesignSkill, IAgentDesignSkillRevision, IAgentDesignSkillFile, IAgentDesignSkillInspection, IAgentDesignSkillLicense, } from "./types";
109
+ export { IUser, IGit, IOrigin, IProject, IProjectAnalytics, IPreview, IProjectConnection, IProjectNetworkSettings, IRatelimit, RatelimitConfig, RateLimitZone, RateLimitMatcher, DistributedRateLimitConfig, IFollowing, IIntegration, IEnv, IServer, IDomain, IToken, IPlatformApiKey, IMember, ITeam, IInstalledIntegration, ILog, ISubscription, ICard, IPaymentMethod, IDns, IDnsChangeLog, IRole, IPermission, IMemberPermission, IWallet, IDbImage, IJob, ILicense, IPlanConfiguration, IAutoScalingGroup, IComputeChange, IRegion, IVolume, IFramework, BrimbleFrameworkType, ISettings, ILoadBalancerPort, IDomainRenewal, IDomainTransfer, IWebhookCategory, IWebhookEvent, IWebhookSetting, IIntention, IProvider, ICollabAnnotation, ICollabComment, ICollabAttachment, ICollabIntegration, ICollabSettings, ICollabShareToken, ICollabPushSubscription, IAppMessage, IInvoice, ITag, IProjectTagAssignment, ICashierSubscription, ICashierSubscriptionItem, IProjectEnvironment, IEnvironmentVariable, IProjectConfigFile, IActivityLog, IAlertRule, IAlertRuleState, IAlertEvent, IAlertNotificationResult, IDrain, IProjectDrainSubscription, IOwnershipTransfer, ISandbox, ISandboxSpecs, ISandboxActivity, ISandboxImage, ISandboxSize, ISandboxSnapshot, IBackupHistory, IDatabaseUser, IRestoreHistory, IWorkerRun, ISandboxSnapshotUsageSegment, ISandboxSnapshotUsageSegmentCosts, ISandboxUsageSegment, ISandboxUsageSegmentCurrent, ISandboxUsageSegmentCosts, IVolumeUsageSegment, IVolumeUsageSegmentCosts, IPgBouncerUsageSegment, IPgBouncerUsageSegmentCosts, IObjectStorageUsageSegment, IObjectStorageUsageSegmentCosts, IObjectStorageUsageUnitsSummary, IIdempotencyRecord, IStorageBucket, IStorageObject, IStorageUpload, IStorageToken, IStorageCredential, IStorageMigration, StorageTokenPermission, StorageLifecycleRule, StorageCorsRule, StorageLifecycleRuleTransition, IStreak, IStreakMilestoneRef, IStreakEvent, IStreakDay, IStreakMilestone, IQuestCampaign, IQuestCriterion, IQuestRequirement, IQuestReward, IQuestParticipation, IQuestCriterionProgress, IQuestRewardIssuance, IQuestIssuedReward, ICoupon, ICouponRedemption, ITicket, ICareerRole, IBlogPost, IChangelogEntry, IChangelogCampaign, ChangelogEmailPayloadEntry, IAgentChat, IAgentChatMessage, IAgentChatFile, IAgentChatModel, IAgentWebsite, IAgentWebsiteSnapshot, IAgentWebsiteFileOverlay, IAgentDesignSkill, IAgentDesignSkillRevision, IAgentDesignSkillFile, IAgentDesignSkillInspection, IAgentDesignSkillLicense, } from "./types";
109
110
  export { GIT_TYPE, INTEGRATION_TYPES, INTEGRATION_PROVIDERS, OAUTH_PERMISSIONS, ENVIRONMENT, SERVER_STATUS, ROLES, SUBSCRIPTION_PLAN_TYPE, PROJECT_STATUS, AlertMetric, AlertCondition, AlertRuleState, AlertChannelMode, AlertEventStatus, DrainType, DrainStatus, LogSource, DrainEventType, SUBSCRIPTION_STATUS, CARD_TYPES, DNS_TYPE, DNS_CHANGE_TYPE, DNS_CHANGE_SOURCE, PERMISSION_TYPE, REQUEST_TYPE, ServiceType, SCALING_SOURCE, DatabaseEngine, DatabasePasswordChangeMode, DatabasePasswordMode, EmailDeadLetterStatus, JobStatus, LicenseStatus, REGION_CONTINENT, VOLUME_BACKEND, BUILD_DISABLED_BY, PROJECT_DISABLED_BY, SPENDING_LIMIT_ACTION, SERVER_PROTOCOL, FrameworkApplicationType, DomainRenewalStatus, DomainTransferProvider, DomainTransferDirection, DomainTransferStatus, NomadDeploymentStatus, COLLAB_ANNOTATION_STATUS, COLLAB_INTEGRATION_TYPE, COLLAB_THEME, COLLAB_TOOLBAR_POSITION, INVOICE_STATUS, INVOICE_PAYMENT_STATUS, INVOICE_TYPE, SANDBOX_TEMPLATE, SANDBOX_STATUS, SANDBOX_DESTROY_REASON, SANDBOX_EGRESS_MODE, SANDBOX_SNAPSHOT_STATUS, BACKUP_STATUS, DatabaseUserPermission, DatabaseUserStatus, WorkerRunStatus, WorkerRunTrigger, RESTORE_STATUS, StorageBucketStatus, StorageUploadStatus, StorageTokenStatus, PlatformApiKeyStatus, StorageCredentialRole, StorageCredentialStatus, StorageMigrationStatus, XFrameOptions, XContentTypeOptions, XRobotsTag, QualifyingActionType, MilestoneType, QUEST_COUNTABLE_MILESTONES, ACTION_TO_MILESTONE, EligibilityType, RewardType, QuestRewardStatus, QuestCriterionType, QuestEntity, QuestRequirementType, QUEST_CLAIM_REQUIREMENTS, QUEST_TARGETLESS_REQUIREMENTS, WorkbenchMode, CouponDiscountType, CouponScope, CouponRedemptionStatus, CONFIG_FILE_VISIBILITY, AGENT_CHAT_STATUS, AGENT_CHAT_MESSAGE_ROLE, AGENT_WEBSITE_STATUS, AGENT_WEBSITE_SNAPSHOT_STATUS, AGENT_DESIGN_SKILL_STATUS, AGENT_DESIGN_SKILL_TRUST_LEVEL, AGENT_DESIGN_SKILL_VERDICT, } from "./enum";
110
111
  import mongoose from "mongoose";
111
112
  export declare const connectToMongo: (mongoUrl: string, config?: mongoose.ConnectOptions) => Promise<void>;
package/dist/index.js CHANGED
@@ -14,9 +14,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.CollabSettings = exports.CollabIntegration = exports.CollabComment = exports.CollabAnnotation = exports.Provider = exports.Intention = exports.WebhookSetting = exports.WebhookEvent = exports.WebhookCategory = exports.DomainTransfer = exports.DomainRenewal = exports.LoadBalancerPort = exports.Settings = exports.Framework = exports.Volume = exports.Region = exports.ComputeChange = exports.AutoScalingGroup = exports.PlanConfiguration = exports.Liscense = exports.Job = exports.EmailDeadLetter = exports.DbImage = exports.Wallet = exports.Server = exports.Card = exports.Subscription = exports.Log = exports.Role = exports.MemberPermission = exports.PaymentMethod = exports.Permission = exports.Member = exports.Team = exports.PlatformApiKey = exports.Token = exports.Env = exports.DnsChangeLog = exports.Dns = exports.Domain = exports.Integration = exports.Following = exports.Ratelimit = exports.ProjectNetworkSettings = exports.ProjectConnection = exports.Preview = exports.ProjectAnalytics = exports.DeletedProject = exports.Project = exports.User = void 0;
16
16
  exports.CouponRedemption = exports.Coupon = exports.QuestRewardIssuance = exports.QuestParticipation = exports.QuestCampaign = exports.StreakMilestone = exports.StreakDay = exports.StreakEvent = exports.Streak = exports.StorageMigration = exports.StorageCredential = exports.StorageToken = exports.StorageUpload = exports.StorageObject = exports.StorageBucket = exports.IdempotencyRecord = exports.ObjectStorageUsageSegment = exports.PgBouncerUsageSegment = exports.VolumeUsageSegment = exports.SandboxUsageSegment = exports.SandboxSnapshotUsageSegment = exports.WorkerRun = exports.RestoreHistory = exports.DatabaseUser = exports.BackupHistory = exports.SandboxSnapshot = exports.SandboxWarmPoolMember = exports.SandboxWarmPool = exports.SandboxSize = exports.SandboxImage = exports.SandboxActivity = exports.Sandbox = exports.OwnershipTransfer = exports.ProjectDrainSubscription = exports.Drain = exports.AlertEvent = exports.AlertRuleStateModel = exports.AlertRule = exports.ActivityLog = exports.ProjectConfigFile = exports.EnvironmentVariable = exports.ProjectEnvironment = exports.CashierSubscriptionItem = exports.CashierSubscription = exports.ProjectTagAssignment = exports.Tag = exports.Invoice = exports.AppMessage = exports.CollabPushSubscription = exports.CollabShareToken = void 0;
17
- exports.PROJECT_DISABLED_BY = exports.BUILD_DISABLED_BY = exports.VOLUME_BACKEND = exports.REGION_CONTINENT = exports.LicenseStatus = exports.JobStatus = exports.EmailDeadLetterStatus = exports.DatabasePasswordMode = exports.DatabasePasswordChangeMode = exports.DatabaseEngine = exports.SCALING_SOURCE = exports.ServiceType = exports.REQUEST_TYPE = exports.PERMISSION_TYPE = exports.DNS_CHANGE_SOURCE = exports.DNS_CHANGE_TYPE = exports.DNS_TYPE = exports.CARD_TYPES = exports.SUBSCRIPTION_STATUS = exports.DrainEventType = exports.LogSource = exports.DrainStatus = exports.DrainType = exports.AlertEventStatus = exports.AlertChannelMode = exports.AlertRuleState = exports.AlertCondition = exports.AlertMetric = exports.PROJECT_STATUS = exports.SUBSCRIPTION_PLAN_TYPE = exports.ROLES = exports.SERVER_STATUS = exports.ENVIRONMENT = exports.OAUTH_PERMISSIONS = exports.INTEGRATION_PROVIDERS = exports.INTEGRATION_TYPES = exports.GIT_TYPE = exports.AgentDesignSkillRevision = exports.AgentDesignSkill = exports.AgentWebsiteFileOverlay = exports.AgentWebsiteSnapshot = exports.AgentWebsite = exports.AgentChatModel = exports.AgentChatFile = exports.AgentChatMessage = exports.AgentChat = exports.ChangelogEntry = exports.BlogPost = exports.CareerRole = exports.Ticket = void 0;
18
- exports.CouponDiscountType = exports.WorkbenchMode = exports.QUEST_TARGETLESS_REQUIREMENTS = exports.QUEST_CLAIM_REQUIREMENTS = exports.QuestRequirementType = exports.QuestEntity = exports.QuestCriterionType = exports.QuestRewardStatus = exports.RewardType = exports.EligibilityType = exports.ACTION_TO_MILESTONE = exports.QUEST_COUNTABLE_MILESTONES = exports.MilestoneType = exports.QualifyingActionType = exports.XRobotsTag = exports.XContentTypeOptions = exports.XFrameOptions = exports.StorageMigrationStatus = exports.StorageCredentialStatus = exports.StorageCredentialRole = exports.PlatformApiKeyStatus = exports.StorageTokenStatus = exports.StorageUploadStatus = exports.StorageBucketStatus = exports.RESTORE_STATUS = exports.WorkerRunTrigger = exports.WorkerRunStatus = exports.DatabaseUserStatus = exports.DatabaseUserPermission = exports.BACKUP_STATUS = exports.SANDBOX_SNAPSHOT_STATUS = exports.SANDBOX_EGRESS_MODE = exports.SANDBOX_DESTROY_REASON = exports.SANDBOX_STATUS = exports.SANDBOX_TEMPLATE = exports.INVOICE_TYPE = exports.INVOICE_PAYMENT_STATUS = exports.INVOICE_STATUS = exports.COLLAB_TOOLBAR_POSITION = exports.COLLAB_THEME = exports.COLLAB_INTEGRATION_TYPE = exports.COLLAB_ANNOTATION_STATUS = exports.NomadDeploymentStatus = exports.DomainTransferStatus = exports.DomainTransferDirection = exports.DomainTransferProvider = exports.DomainRenewalStatus = exports.FrameworkApplicationType = exports.SERVER_PROTOCOL = exports.SPENDING_LIMIT_ACTION = void 0;
19
- exports.healthCheckMongo = exports.closeMongo = exports.db = exports.connectToMongo = exports.AGENT_DESIGN_SKILL_VERDICT = exports.AGENT_DESIGN_SKILL_TRUST_LEVEL = exports.AGENT_DESIGN_SKILL_STATUS = exports.AGENT_WEBSITE_SNAPSHOT_STATUS = exports.AGENT_WEBSITE_STATUS = exports.AGENT_CHAT_MESSAGE_ROLE = exports.AGENT_CHAT_STATUS = exports.CONFIG_FILE_VISIBILITY = exports.CouponRedemptionStatus = exports.CouponScope = void 0;
17
+ exports.BUILD_DISABLED_BY = exports.VOLUME_BACKEND = exports.REGION_CONTINENT = exports.LicenseStatus = exports.JobStatus = exports.EmailDeadLetterStatus = exports.DatabasePasswordMode = exports.DatabasePasswordChangeMode = exports.DatabaseEngine = exports.SCALING_SOURCE = exports.ServiceType = exports.REQUEST_TYPE = exports.PERMISSION_TYPE = exports.DNS_CHANGE_SOURCE = exports.DNS_CHANGE_TYPE = exports.DNS_TYPE = exports.CARD_TYPES = exports.SUBSCRIPTION_STATUS = exports.DrainEventType = exports.LogSource = exports.DrainStatus = exports.DrainType = exports.AlertEventStatus = exports.AlertChannelMode = exports.AlertRuleState = exports.AlertCondition = exports.AlertMetric = exports.PROJECT_STATUS = exports.SUBSCRIPTION_PLAN_TYPE = exports.ROLES = exports.SERVER_STATUS = exports.ENVIRONMENT = exports.OAUTH_PERMISSIONS = exports.INTEGRATION_PROVIDERS = exports.INTEGRATION_TYPES = exports.GIT_TYPE = exports.AgentDesignSkillRevision = exports.AgentDesignSkill = exports.AgentWebsiteFileOverlay = exports.AgentWebsiteSnapshot = exports.AgentWebsite = exports.AgentChatModel = exports.AgentChatFile = exports.AgentChatMessage = exports.AgentChat = exports.ChangelogCampaign = exports.ChangelogEntry = exports.BlogPost = exports.CareerRole = exports.Ticket = void 0;
18
+ exports.WorkbenchMode = exports.QUEST_TARGETLESS_REQUIREMENTS = exports.QUEST_CLAIM_REQUIREMENTS = exports.QuestRequirementType = exports.QuestEntity = exports.QuestCriterionType = exports.QuestRewardStatus = exports.RewardType = exports.EligibilityType = exports.ACTION_TO_MILESTONE = exports.QUEST_COUNTABLE_MILESTONES = exports.MilestoneType = exports.QualifyingActionType = exports.XRobotsTag = exports.XContentTypeOptions = exports.XFrameOptions = exports.StorageMigrationStatus = exports.StorageCredentialStatus = exports.StorageCredentialRole = exports.PlatformApiKeyStatus = exports.StorageTokenStatus = exports.StorageUploadStatus = exports.StorageBucketStatus = exports.RESTORE_STATUS = exports.WorkerRunTrigger = exports.WorkerRunStatus = exports.DatabaseUserStatus = exports.DatabaseUserPermission = exports.BACKUP_STATUS = exports.SANDBOX_SNAPSHOT_STATUS = exports.SANDBOX_EGRESS_MODE = exports.SANDBOX_DESTROY_REASON = exports.SANDBOX_STATUS = exports.SANDBOX_TEMPLATE = exports.INVOICE_TYPE = exports.INVOICE_PAYMENT_STATUS = exports.INVOICE_STATUS = exports.COLLAB_TOOLBAR_POSITION = exports.COLLAB_THEME = exports.COLLAB_INTEGRATION_TYPE = exports.COLLAB_ANNOTATION_STATUS = exports.NomadDeploymentStatus = exports.DomainTransferStatus = exports.DomainTransferDirection = exports.DomainTransferProvider = exports.DomainRenewalStatus = exports.FrameworkApplicationType = exports.SERVER_PROTOCOL = exports.SPENDING_LIMIT_ACTION = exports.PROJECT_DISABLED_BY = void 0;
19
+ exports.healthCheckMongo = exports.closeMongo = exports.db = exports.connectToMongo = exports.AGENT_DESIGN_SKILL_VERDICT = exports.AGENT_DESIGN_SKILL_TRUST_LEVEL = exports.AGENT_DESIGN_SKILL_STATUS = exports.AGENT_WEBSITE_SNAPSHOT_STATUS = exports.AGENT_WEBSITE_STATUS = exports.AGENT_CHAT_MESSAGE_ROLE = exports.AGENT_CHAT_STATUS = exports.CONFIG_FILE_VISIBILITY = exports.CouponRedemptionStatus = exports.CouponScope = exports.CouponDiscountType = void 0;
20
20
  var user_1 = require("./user");
21
21
  Object.defineProperty(exports, "User", { enumerable: true, get: function () { return __importDefault(user_1).default; } });
22
22
  var project_1 = require("./project");
@@ -219,6 +219,8 @@ var blog_post_1 = require("./blog-post");
219
219
  Object.defineProperty(exports, "BlogPost", { enumerable: true, get: function () { return __importDefault(blog_post_1).default; } });
220
220
  var changelog_entry_1 = require("./changelog-entry");
221
221
  Object.defineProperty(exports, "ChangelogEntry", { enumerable: true, get: function () { return __importDefault(changelog_entry_1).default; } });
222
+ var changelog_campaign_1 = require("./changelog-campaign");
223
+ Object.defineProperty(exports, "ChangelogCampaign", { enumerable: true, get: function () { return __importDefault(changelog_campaign_1).default; } });
222
224
  var agent_chat_1 = require("./agent-chat");
223
225
  Object.defineProperty(exports, "AgentChat", { enumerable: true, get: function () { return __importDefault(agent_chat_1).default; } });
224
226
  var agent_chat_message_1 = require("./agent-chat-message");
@@ -0,0 +1,29 @@
1
+ import { Document, Types } from "mongoose";
2
+ export type ChangelogEmailPayloadEntry = {
3
+ category: "new" | "improved" | "fixed";
4
+ title: string;
5
+ description: string;
6
+ link?: {
7
+ label: string;
8
+ url: string;
9
+ };
10
+ };
11
+ export interface IChangelogCampaign extends Document {
12
+ period_label: string;
13
+ period_start: Date;
14
+ period_end: Date;
15
+ subject: string;
16
+ intro?: string;
17
+ entry_ids: Types.ObjectId[];
18
+ email_payload: ChangelogEmailPayloadEntry[];
19
+ auto_send: boolean;
20
+ status: string;
21
+ preview_at: Date;
22
+ send_at: Date;
23
+ preview_sent_at?: Date | null;
24
+ sent_at?: Date | null;
25
+ idempotency_key: string;
26
+ skipped_entry_ids: Types.ObjectId[];
27
+ created_at: Date;
28
+ updated_at: Date;
29
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,4 @@
1
- import { Document } from "mongoose";
1
+ import { Document, Types } from "mongoose";
2
2
  export interface IChangelogEntry extends Document {
3
3
  airtable_id?: string;
4
4
  airtable_created_time?: Date;
@@ -9,6 +9,8 @@ export interface IChangelogEntry extends Document {
9
9
  type?: string;
10
10
  summary?: string;
11
11
  content?: string;
12
+ emailed_at?: Date | null;
13
+ email_campaign_id?: Types.ObjectId | null;
12
14
  createdAt: Date;
13
15
  updatedAt: Date;
14
16
  }
@@ -95,6 +95,7 @@ export type { ITicket } from "./ticket";
95
95
  export type { ICareerRole } from "./career-role";
96
96
  export type { IBlogPost } from "./blog-post";
97
97
  export type { IChangelogEntry } from "./changelog-entry";
98
+ export type { ChangelogEmailPayloadEntry, IChangelogCampaign } from "./changelog-campaign";
98
99
  export type { IAgentChat } from "./agent-chat";
99
100
  export type { IAgentChatMessage } from "./agent-chat-message";
100
101
  export type { IAgentChatFile } from "./agent-chat-file";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brimble/models",
3
- "version": "3.8.168",
3
+ "version": "3.8.170",
4
4
  "description": "Brimble models",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",