Files
modstagram-back/models/NotificationModel.js
payacom 3f416a7a60 full
2026-08-31 20:45:41 +03:30

59 lines
1.5 KiB
JavaScript

const mongoose = require('mongoose')
const timestamp = require('mongoose-timestamp')
const mongoosePaginate = require('mongoose-paginate-v2')
const notificationSchema = new mongoose.Schema({
user_id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User', // مرجع به مدل کاربر
required: true
},
project_post_id: {
type: mongoose.Schema.Types.ObjectId,
required: false
},
type: {
type: String,
required: true
},
title: {
type: String,
required: true
},
description: {
type: String,
required: true
},
read: {
type: Boolean,
default: false // وضعیت خوانده شده یا نشده
},
actor_id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: false
},
// فقط برای اعلان‌های همگانی پنل — جدا از read (که یعنی صفحه اعلان‌ها باز شده)،
// seen یعنی پوش واقعاً به دستگاه رسیده و clicked یعنی کاربر روش ضربه زده
broadcast_id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'AdminBroadcast',
required: false,
index: true
},
push_delivered_seen: {
type: Boolean,
default: false
},
push_clicked: {
type: Boolean,
default: false
}
})
notificationSchema.plugin(timestamp)
notificationSchema.plugin(mongoosePaginate)
const NotificationModel = mongoose.model('Notification', notificationSchema)
module.exports = NotificationModel