Files
modstagram-back/models/MessageModel.js
2026-07-08 21:01:30 +03:30

67 lines
1.3 KiB
JavaScript

const mongoose = require('mongoose')
const { Schema } = mongoose
const messageSchema = new Schema({
senderId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
},
receiverId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
},
content: {
type: String,
required: false,
trim: true
},
file: {
type: String,
required: false
},
fileType: {
type: String,
enum: ['image', 'video', 'file', 'voice', 'location'],
required: false
},
replyToId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Message',
required: false
},
forwardedFrom: {
userId: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
userName: String,
displayName: String
},
createdAt: {
type: Date,
default: Date.now
},
readStatus: {
type: Number,
default: 0
},
/** Auto-delete after this time (self-destruct messages) */
expiresAt: {
type: Date,
required: false,
index: true
},
/** View-once photo / video / voice */
viewOnce: {
type: Boolean,
default: false
},
viewOnceOpenedAt: {
type: Date,
required: false
}
})
const MessageModel = mongoose.model('Message', messageSchema)
module.exports = MessageModel