// chat-room-invite.js // Copyright (C) 2024 DTP Technologies, LLC // All Rights Reserved 'use strict'; import mongoose from 'mongoose'; const Schema = mongoose.Schema; const INVITE_STATUS_LIST = ['new', 'viewed', 'accepted', 'rejected']; const InviteeSchema = new Schema({ user: { }, // pick up here email: { }, }); const ChatRoomInviteSchema = new Schema({ created: { type: Date, default: Date.now, required: true, index: 1, expires: '7d' }, token: { type: String, required: true, unique: true }, owner: { type: Schema.ObjectId, required: true, index: 1, ref: 'User' }, room: { type: Schema.ObjectId, required: true, index: 1, ref: 'ChatRoom' }, member: { type: InviteeSchema, required: true }, status: { type: String, enum: INVITE_STATUS_LIST, required: true }, message: { type: String }, }); export default mongoose.model('ChatRoomInvite', ChatRoomInviteSchema);