Snaplocal / server /src /models /PhotoDelivery.js
Kuruva Laxmi
SnapLocal MVP - Complete platform with 4 MVP features
0f8617c
Raw
History Blame Contribute Delete
1.27 kB
const mongoose = require('mongoose');
const photoDeliverySchema = new mongoose.Schema(
{
bookingId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Booking',
required: true,
unique: true,
},
photographerId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Photographer',
required: true,
},
customerId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true,
},
photos: [
{
url: String,
uploadedAt: {
type: Date,
default: Date.now,
},
watermarked: {
type: Boolean,
default: true,
},
},
],
status: {
type: String,
enum: ['pending', 'partially_delivered', 'delivered', 'revision_requested'],
default: 'pending',
},
deliveredAt: {
type: Date,
default: null,
},
downloadLink: {
type: String,
default: null,
},
linkExpiresAt: {
type: Date,
default: null,
},
revisionNotes: {
type: String,
default: '',
},
revisionsRequested: {
type: Number,
default: 0,
},
},
{ timestamps: true }
);
module.exports = mongoose.model('PhotoDelivery', photoDeliverySchema);