// chat-room-invite.js // Copyright (C) 2022 DTP Technologies, LLC // License: Apache-2.0 'use strict'; const mongoose = require('mongoose'); const Schema = mongoose.Schema; const INVITE_STATUS_LIST = ['new', 'accepted', 'rejected', 'deleted']; const ChatRoomInviteSchema = new Schema({ created: { type: Date, default: Date.now, required: true, index: -1, expires: '30d' }, room: { type: Schema.ObjectId, required: true, ref: 'ChatRoom' }, memberType: { type: String, required: true }, member: { type: Schema.ObjectId, required: true, index: 1, refPath: 'memberType' }, status: { type: String, enum: INVITE_STATUS_LIST, required: true }, message: { type: String }, }); ChatRoomInviteSchema.index({ room: 1, member: 1, }, { unique: true, name: 'chatroom_invite_unique_idx', }); module.exports = (conn) => { return conn.model('ChatRoomInvite', ChatRoomInviteSchema); };