-
Notifications
You must be signed in to change notification settings - Fork 234
Expand file tree
/
Copy pathemail-template.ts
More file actions
30 lines (25 loc) · 957 Bytes
/
email-template.ts
File metadata and controls
30 lines (25 loc) · 957 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import mongoose, { Model } from "mongoose";
import { EmailTemplate as PublicEmailTemplate } from "@courselit/common-models";
import { EmailContentSchema } from "@courselit/common-logic";
interface EmailTemplate extends PublicEmailTemplate {
domain: mongoose.Schema.Types.ObjectId;
creatorId: string;
}
const EmailTemplateSchema = new mongoose.Schema<EmailTemplate>({
domain: { type: mongoose.Schema.Types.ObjectId, required: true },
templateId: { type: String, required: true },
title: { type: String, required: true },
creatorId: { type: String, required: true },
content: { type: EmailContentSchema, required: true },
});
EmailTemplateSchema.index(
{
domain: 1,
title: 1,
},
{ unique: true },
);
const EmailTemplateModel =
(mongoose.models.EmailTemplate as Model<EmailTemplate>) ||
mongoose.model<EmailTemplate>("EmailTemplate", EmailTemplateSchema);
export default EmailTemplateModel;