diff --git a/src/models/Member.ts b/src/models/Member.ts index 6716ac2..0fa1267 100644 --- a/src/models/Member.ts +++ b/src/models/Member.ts @@ -1,24 +1,38 @@ -import {model, ObjectId, Schema, Types} from "mongoose"; +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({ projectId: { - type: Types.ObjectId, + type: String, required: true }, memberId: { - type: Types.ObjectId, + type: String, required: true }, + role: { + type: Number, + enum: IKeyRole, + default: IKeyRole.MANAGE + }, accepted: { type: Boolean, default: false } }); +MemberSchema.plugin(fieldEncryption, { + fields: ["projectId", "memberId", "role", "accepted"], + secret: process.env.ENC_KEY, + saltGenerator: () => process.env.SIG_KEY, +}); + export const Member = model("members", MemberSchema); \ No newline at end of file