This commit is contained in:
payacom
2026-08-31 20:45:41 +03:30
parent fa9f23c61d
commit 3f416a7a60
367 changed files with 621895 additions and 6443 deletions

View File

@@ -42,11 +42,25 @@ const projectSchema = new mongoose.Schema({
maxLength: 255,
default: null
},
age_min: {
type: Number,
required: false,
default: null
},
age_max: {
type: Number,
required: false,
default: null
},
conversation_projects: {
type: Boolean,
required: false,
default: null
},
country: {
type: Object,
default: null
},
province: {
type: Object,
default: null
@@ -55,6 +69,30 @@ const projectSchema = new mongoose.Schema({
type: Object,
default: null
},
lat: {
type: Number,
required: false,
default: null
},
lng: {
type: Number,
required: false,
default: null
},
neighborhood: {
type: String,
required: false,
trim: true,
maxLength: 255,
default: null
},
address: {
type: String,
required: false,
trim: true,
maxLength: 1024,
default: null
},
offer_time: {
type: String,
required: false,
@@ -71,6 +109,73 @@ const projectSchema = new mongoose.Schema({
maxLength: 255,
default: null
},
payment_method: {
type: String,
enum: ['monthly', 'daily', 'hourly', 'commission', 'negotiable'],
required: false,
default: undefined
},
start_date: {
type: String,
required: false,
trim: true,
maxLength: 64,
default: null
},
work_hours_start: {
type: String,
required: false,
trim: true,
maxLength: 32,
default: null
},
work_hours_end: {
type: String,
required: false,
trim: true,
maxLength: 32,
default: null
},
collaboration_type: {
type: String,
enum: ['full_time', 'part_time', 'project', 'internship'],
required: false,
default: undefined
},
experience: {
type: String,
required: false,
trim: true,
maxLength: 64,
default: null
},
roles: [{
expertise: {
type: String,
required: true,
trim: true
},
sub_expertise: {
type: [String],
default: []
},
number_of_person: {
type: Number,
default: 1
},
height_min: { type: Number, default: null },
height_max: { type: Number, default: null },
weight_min: { type: Number, default: null },
weight_max: { type: Number, default: null },
size_min: { type: Number, default: null },
size_max: { type: Number, default: null },
eye_color: { type: String, default: null },
hair_color: { type: String, default: null },
portfolio_required: {
type: Boolean,
default: false
}
}],
description: {
type: String,
required: false,
@@ -95,7 +200,7 @@ const projectSchema = new mongoose.Schema({
// فیلد برای وضعیت پروژه
status: {
type: String,
enum: ['pre_payment', 'paid', 'accepted', 'rejected', 'done', 'cancled', 'ongoing'],
enum: ['pre_payment', 'paid', 'temp_accept', 'accepted', 'rejected', 'done', 'cancled', 'ongoing'],
default: 'pre_payment'
},
public_status: {
@@ -175,6 +280,11 @@ const projectSchema = new mongoose.Schema({
isExpired: {
type: Boolean,
default: false
},
// آیا مبلغ باقی‌مانده (پس از کسر کارمزد) هنگام تکمیل پروژه واریز شده است
completionShareCredited: {
type: Boolean,
default: false
}
})