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

79 lines
1.4 KiB
JavaScript

const mongoose = require('mongoose')
const mongoosePaginate = require('mongoose-paginate-v2')
const timestamp = require('mongoose-timestamp')
const bookingSchema = new mongoose.Schema({
bookingConfig: {
type: mongoose.Schema.Types.ObjectId,
ref: 'BookingConfig',
required: true,
index: true
},
provider: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true,
index: true
},
buyer: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true,
index: true
},
serviceId: {
type: String,
required: true
},
serviceTitle: {
type: String,
required: true,
trim: true
},
servicePrice: {
type: Number,
required: true
},
date: {
type: Date,
required: true,
index: true
},
startTime: {
type: String,
required: true
},
endTime: {
type: String,
required: true
},
depositRequired: {
type: Boolean,
default: false
},
depositAmount: {
type: Number,
default: 0
},
depositPaid: {
type: Boolean,
default: false
},
paymentAuthority: {
type: String,
default: null
},
status: {
type: String,
enum: ['pending_payment', 'confirmed', 'cancelled'],
default: 'pending_payment',
index: true
}
})
bookingSchema.plugin(timestamp)
bookingSchema.plugin(mongoosePaginate)
const BookingModel = mongoose.model('Booking', bookingSchema)
module.exports = BookingModel