Backend/src/models/Member.ts

38 lines
854 B
TypeScript

import {model, ObjectId, Schema} from "mongoose";
import { IKeyRole } from "@models/AccessKey";
import { fieldEncryption } from "mongoose-field-encryption";
export interface IMember {
projectId: ObjectId,
memberId: ObjectId,
role: IKeyRole,
accepted: boolean
}
const MemberSchema = new Schema<IMember>({
projectId: {
type: String,
required: true
},
memberId: {
type: String,
required: true
},
role: {
type: Number,
enum: IKeyRole,
default: IKeyRole.MANAGE
},
accepted: {
type: Boolean,
default: false
}
});
MemberSchema.plugin(fieldEncryption, {
fields: ["projectId", "memberId"],
secret: process.env.ENC_KEY,
saltGenerator: () => process.env.SIG_KEY,
});
export const Member = model<IMember>("members", MemberSchema);