Spaces:
Paused
Paused
File size: 1,124 Bytes
a0fda44 |
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
const mongoose = require("mongoose");
const callDetailSchema = new mongoose.Schema({
callType: String,
callDuration: String,
callRejectReason: { type: String, enum: ["Missed", "Busy"] },
});
const MessageSchema = new mongoose.Schema({
messageType: {
type: String,
required: true,
},
sender: mongoose.Schema.Types.ObjectId,
readStatus: {
type: Boolean,
default: false,
},
deliveredStatus: {
type: Boolean,
default: false,
},
undeliveredMembers: [mongoose.Schema.Types.ObjectId],
unreadMembers: [mongoose.Schema.Types.ObjectId],
timeSent: Date,
// If text message was sent
message: String,
// If image was sent
imageUrl: String,
// If call was made
callDetails: callDetailSchema,
// If voice note was sent
voiceNoteUrl: String,
voiceNoteDuration: String,
});
const Schema = new mongoose.Schema({
roomType: {
type: String,
enum: ["Private", "Group"],
},
members: [{ type: mongoose.Schema.Types.ObjectId, ref: "User" }],
messageHistory: [{ day: Number, messages: [MessageSchema] }],
});
module.exports = mongoose.model("ChatRoom", Schema);
|