Files
modstagram-back/models/RequestModel.js
payacom 90c5f94b57 check
2026-09-03 16:06:02 +03:30

60 lines
1.3 KiB
JavaScript

const mongoose = require('mongoose')
const timestamp = require('mongoose-timestamp')
const requestSchema = new mongoose.Schema({
project: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Project',
required: true
},
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
},
role_id: {
type: mongoose.Schema.Types.ObjectId,
required: false,
default: null
},
role_expertise: {
type: String,
required: false,
trim: true,
default: null
},
time: {
type: Number,
required: true
},
price: {
type: Number,
required: true
},
portfolio: [{
path: {
type: String,
required: true
},
type: {
type: String,
enum: ['image', 'video'],
required: true
}
}],
status: {
type: String,
enum: ['pending', 'accepted', 'rejected'],
default: 'pending'
}
})
// پشتیبانِ کوئریِ enrichProjectsWithRequests (getProjectController.js) که با
// $in روی project سرچ می‌کنه — بدونش هر لیستِ پروژه یه COLLSCAN روی Request می‌زد
requestSchema.index({ project: 1 })
requestSchema.plugin(timestamp)
const RequestModel = mongoose.model('Request', requestSchema)
module.exports = RequestModel