This commit is contained in:
payacom
2026-09-03 16:06:02 +03:30
parent 3f416a7a60
commit 90c5f94b57
31 changed files with 3968 additions and 4283 deletions

View File

@@ -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)