Snaplocal / server /src /models /Package.js
Kuruva Laxmi
SnapLocal MVP - Complete platform with 4 MVP features
0f8617c
Raw
History Blame Contribute Delete
1.38 kB
const mongoose = require('mongoose');
const packageSchema = new mongoose.Schema(
{
photographerId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Photographer',
required: true,
},
name: {
type: String,
required: true,
trim: true,
},
description: {
type: String,
default: '',
},
price: {
type: Number,
required: true,
min: 0,
},
priceUnit: {
type: String,
enum: ['hourly', 'session', 'daily'],
default: 'session',
},
duration: {
type: Number, // in hours
default: 2,
},
deliverables: {
numPhotos: {
type: Number,
default: 100,
},
numEdited: {
type: Number,
default: 10,
},
numLocations: {
type: Number,
default: 1,
},
includesAlbum: {
type: Boolean,
default: false,
},
revisions: {
type: Number,
default: 0, // unlimited if 0
},
additionalFeatures: [String], // e.g., ["Drone shots", "Video highlights"]
},
active: {
type: Boolean,
default: true,
},
bookingCount: {
type: Number,
default: 0,
},
tags: [String], // e.g., ['wedding', 'couple-shoot']
},
{ timestamps: true }
);
module.exports = mongoose.model('Package', packageSchema);