check
This commit is contained in:
@@ -93,7 +93,7 @@ const advertisingSchema = new mongoose.Schema({
|
||||
},
|
||||
status: {
|
||||
type: String,
|
||||
default: "UnderReview",
|
||||
default: 'UnderReview',
|
||||
required: false
|
||||
},
|
||||
image: {
|
||||
@@ -157,7 +157,7 @@ const advertisingSchema = new mongoose.Schema({
|
||||
},
|
||||
status: {
|
||||
type: String,
|
||||
enum: ['pre_payment', 'paid', 'temp_accept', 'accepted', 'rejected', 'expired'],
|
||||
enum: ['pre_payment', 'paid', 'pending', 'temp_accept', 'accepted', 'rejected', 'expired'],
|
||||
default: 'pre_payment'
|
||||
},
|
||||
payment_status: {
|
||||
|
||||
@@ -200,7 +200,7 @@ const projectSchema = new mongoose.Schema({
|
||||
// فیلد برای وضعیت پروژه
|
||||
status: {
|
||||
type: String,
|
||||
enum: ['pre_payment', 'paid', 'temp_accept', 'accepted', 'rejected', 'done', 'cancled', 'ongoing'],
|
||||
enum: ['pre_payment', 'paid', 'pending', 'temp_accept', 'accepted', 'rejected', 'done', 'cancled', 'ongoing'],
|
||||
default: 'pre_payment'
|
||||
},
|
||||
public_status: {
|
||||
@@ -289,6 +289,14 @@ const projectSchema = new mongoose.Schema({
|
||||
|
||||
})
|
||||
|
||||
// ایندکسهای لازم برای کوئریِ لیستِ پروژهها (getProjectController.js) — بدونشون
|
||||
// روی هر درخواست یه COLLSCAN + sort-در-حافظه انجام میشد که با بزرگترشدنِ
|
||||
// کالکشن کندتر میشد؛ همون فیلترها/مرتبسازیهایی که getProjects واقعاً استفاده میکنه
|
||||
projectSchema.index({ status: 1, selected_user: 1, acceptedAt: -1, createdAt: -1 })
|
||||
projectSchema.index({ status: 1, expertise: 1 })
|
||||
projectSchema.index({ status: 1, offer_price: -1 })
|
||||
projectSchema.index({ status: 1, requested_users: -1 })
|
||||
|
||||
projectSchema.plugin(timestamp)
|
||||
// اضافه کردن پیجینیشن به مدل
|
||||
projectSchema.plugin(mongoosePaginate)
|
||||
|
||||
@@ -49,6 +49,10 @@ const requestSchema = new mongoose.Schema({
|
||||
}
|
||||
})
|
||||
|
||||
// پشتیبانِ کوئریِ enrichProjectsWithRequests (getProjectController.js) که با
|
||||
// $in روی project سرچ میکنه — بدونش هر لیستِ پروژه یه COLLSCAN روی Request میزد
|
||||
requestSchema.index({ project: 1 })
|
||||
|
||||
requestSchema.plugin(timestamp)
|
||||
|
||||
const RequestModel = mongoose.model('Request', requestSchema)
|
||||
|
||||
@@ -412,6 +412,13 @@ const userSchema = new mongoose.Schema({
|
||||
required: false,
|
||||
default: null
|
||||
},
|
||||
// وقتی «ریست الگوریتم» زده میشه ست میشه — buildUserExploreSignals لایک/کامنت/آفر
|
||||
// قبل از این تاریخ رو نادیده میگیره تا کاربر واقعاً مثل تازهوارد رفتار ببینه، نه
|
||||
// فقط کش رتبهبندی پاک بشه درحالیکه سیگنالهای شخصیسازی قدیمی هنوز اثر دارن
|
||||
algorithm_reset_at: {
|
||||
type: Date,
|
||||
default: null
|
||||
},
|
||||
rate: {
|
||||
type: String,
|
||||
trim: true,
|
||||
|
||||
Reference in New Issue
Block a user