forked from UKSOURCE/cms.hailearning.edu.vn
177 lines
5.4 KiB
JavaScript
177 lines
5.4 KiB
JavaScript
const mongoose = require('mongoose');
|
|
|
|
const homeSchema = new mongoose.Schema({
|
|
// New structure - Camp data
|
|
hero: {
|
|
title: { type: String, default: '' },
|
|
description: { type: String, default: '' },
|
|
backgroundImage: { type: String, default: '' },
|
|
button: {
|
|
label: { type: String, default: 'Book Your Adventure' },
|
|
href: { type: String, default: '/booking' }
|
|
},
|
|
contactBox: {
|
|
welcomeText: { type: String, default: '' },
|
|
phone: {
|
|
label: { type: String, default: 'Call us' },
|
|
number: { type: String, default: '' },
|
|
href: { type: String, default: '' }
|
|
},
|
|
email: {
|
|
label: { type: String, default: 'Email' },
|
|
address: { type: String, default: '' },
|
|
href: { type: String, default: '' }
|
|
},
|
|
workingHours: {
|
|
label: { type: String, default: 'Working Hours' },
|
|
hours: { type: String, default: '' }
|
|
}
|
|
}
|
|
},
|
|
about: {
|
|
title: { type: String, default: '' },
|
|
subtitle: { type: String, default: '' },
|
|
description: { type: String, default: '' },
|
|
images: {
|
|
mainImage1: { type: String, default: '' },
|
|
mainImage2: { type: String, default: '' },
|
|
avatars: [{ type: String }]
|
|
},
|
|
features: [{ type: String }],
|
|
quote: { type: String, default: '' },
|
|
button: {
|
|
label: { type: String, default: '' },
|
|
href: { type: String, default: '' }
|
|
},
|
|
stats: {
|
|
customerCount: { type: Number, default: 0 },
|
|
customerLabel: { type: String, default: '' }
|
|
}
|
|
},
|
|
missionVision: {
|
|
title: { type: String, default: '' },
|
|
subtitle: { type: String, default: '' },
|
|
backgroundImage: { type: String, default: '' },
|
|
cards: [{
|
|
title: { type: String, default: '' },
|
|
description: { type: String, default: '' }
|
|
}]
|
|
},
|
|
whyChooseUs: {
|
|
title: { type: String, default: '' },
|
|
subtitle: { type: String, default: '' },
|
|
description: { type: String, default: '' },
|
|
button: {
|
|
label: { type: String, default: '' },
|
|
href: { type: String, default: '' }
|
|
},
|
|
features: [{
|
|
title: { type: String, default: '' },
|
|
description: { type: String, default: '' }
|
|
}],
|
|
tags: [{ type: String }],
|
|
cta: {
|
|
text: { type: String, default: '' },
|
|
linkText: { type: String, default: '' },
|
|
linkHref: { type: String, default: '' }
|
|
}
|
|
},
|
|
activities: {
|
|
cards: [{
|
|
title: { type: String, default: '' },
|
|
description: { type: String, default: '' },
|
|
image: { type: String, default: '' }
|
|
}]
|
|
},
|
|
faq: {
|
|
title: { type: String, default: '' },
|
|
subtitle: { type: String, default: '' },
|
|
description: { type: String, default: '' },
|
|
image: { type: String, default: '' },
|
|
contact: {
|
|
title: { type: String, default: '' },
|
|
info: { type: String, default: '' }
|
|
},
|
|
questions: [{
|
|
question: { type: String, default: '' },
|
|
answer: { type: String, default: '' }
|
|
}]
|
|
},
|
|
partners: {
|
|
title: { type: String, default: '' },
|
|
subtitle: { type: String, default: '' },
|
|
backgroundImage: { type: String, default: '' },
|
|
logos: [{ type: String }],
|
|
cta: {
|
|
badge: { type: String, default: '' },
|
|
text: { type: String, default: '' },
|
|
linkText: { type: String, default: '' },
|
|
linkHref: { type: String, default: '' }
|
|
}
|
|
},
|
|
programs: {
|
|
title: { type: String, default: '' },
|
|
subtitle: { type: String, default: '' },
|
|
button: {
|
|
label: { type: String, default: '' },
|
|
href: { type: String, default: '' }
|
|
},
|
|
card: {
|
|
pricePrefix: { type: String, default: 'from' },
|
|
priceSuffix: { type: String, default: 'USD' },
|
|
buttonLabel: { type: String, default: 'Camp Detail' },
|
|
buttonHref: { type: String, default: '/camp-profiles' }
|
|
},
|
|
items: [{
|
|
id: { type: String, default: '' },
|
|
title: { type: String, default: '' },
|
|
price: { type: String, default: '' },
|
|
seasons: [{ type: String }],
|
|
age: { type: String, default: '' },
|
|
location: { type: String, default: '' },
|
|
image: { type: String, default: '' },
|
|
slug: { type: String, default: '' }
|
|
}]
|
|
},
|
|
|
|
newsletter: {
|
|
title: { type: String, default: '' },
|
|
subtitle: { type: String, default: '' },
|
|
description: { type: String, default: '' },
|
|
image: { type: String, default: '' },
|
|
decorativeImage: { type: String, default: '' },
|
|
button: {
|
|
label: { type: String, default: '' },
|
|
placeholder: { type: String, default: '' },
|
|
href: { type: String, default: '' }
|
|
}
|
|
},
|
|
latestPosts: {
|
|
title: { type: String, default: '' },
|
|
subtitle: { type: String, default: '' },
|
|
searchPlaceholder: { type: String, default: '' },
|
|
sidebarTitle: { type: String, default: '' },
|
|
blogPosts: [{
|
|
id: { type: Number },
|
|
image: { type: String, default: '' },
|
|
title: { type: String, default: '' },
|
|
description: { type: String, default: '' },
|
|
date: { type: String, default: '' }
|
|
}],
|
|
sidebarPosts: [{
|
|
id: { type: Number },
|
|
image: { type: String, default: '' },
|
|
title: { type: String, default: '' },
|
|
description: { type: String, default: '' }
|
|
}],
|
|
featuredCard: {
|
|
image: { type: String, default: '' },
|
|
title: { type: String, default: '' },
|
|
description: { type: String, default: '' }
|
|
}
|
|
}
|
|
}, {
|
|
timestamps: true
|
|
});
|
|
|
|
module.exports = mongoose.model('Home', homeSchema); |