forked from UKSOURCE/cms.hailearning.edu.vn
119 lines
2.2 KiB
JavaScript
119 lines
2.2 KiB
JavaScript
const mongoose = require("mongoose");
|
|
|
|
// Define sub-schemas first
|
|
const authorSchema = new mongoose.Schema(
|
|
{
|
|
name: String,
|
|
type: String,
|
|
},
|
|
{ _id: false },
|
|
);
|
|
|
|
const clientReviewSchema = new mongoose.Schema(
|
|
{
|
|
id: String,
|
|
rating: Number,
|
|
content: String,
|
|
author: authorSchema,
|
|
icon: String,
|
|
},
|
|
{ _id: false },
|
|
);
|
|
|
|
const featureSchema = new mongoose.Schema(
|
|
{
|
|
title: String,
|
|
description: String,
|
|
},
|
|
{ _id: false },
|
|
);
|
|
|
|
const faqSchema = new mongoose.Schema(
|
|
{
|
|
id: String,
|
|
question: String,
|
|
answer: String,
|
|
isExpanded: { type: Boolean, default: false },
|
|
},
|
|
{ _id: false },
|
|
);
|
|
|
|
const serviceDetailsSchema = new mongoose.Schema(
|
|
{
|
|
title: String,
|
|
description: String,
|
|
mainImage: String,
|
|
overviewTitle: String,
|
|
overviewDescription: String,
|
|
additionalDescription: String,
|
|
keyFeaturesTitle: String,
|
|
keyFeaturesImage: String,
|
|
features: [featureSchema],
|
|
faqTitle: String,
|
|
faqImage: String,
|
|
faq: [faqSchema],
|
|
},
|
|
{ _id: false },
|
|
);
|
|
|
|
// Main service page schema
|
|
const serviceSchema = new mongoose.Schema(
|
|
{
|
|
pageTitle: String,
|
|
|
|
// Main services section
|
|
services: {
|
|
title: {
|
|
subTitle: String,
|
|
mainTitle: String,
|
|
},
|
|
items: [
|
|
{
|
|
slug: String,
|
|
name: String,
|
|
description: String,
|
|
image: String,
|
|
layout: String,
|
|
details: serviceDetailsSchema,
|
|
},
|
|
],
|
|
},
|
|
|
|
// Destination countries section
|
|
destinations: {
|
|
backgroundImage: String,
|
|
title: {
|
|
subTitle: String,
|
|
mainTitle: String,
|
|
},
|
|
},
|
|
|
|
// Visa types section
|
|
visas: {
|
|
items: [
|
|
{
|
|
id: String,
|
|
number: String,
|
|
name: String,
|
|
description: String,
|
|
buttonText: String,
|
|
buttonLink: String,
|
|
},
|
|
],
|
|
},
|
|
|
|
// Client reviews section
|
|
reviews: {
|
|
title: {
|
|
subTitle: String,
|
|
mainTitle: String,
|
|
},
|
|
thumb: String,
|
|
items: [clientReviewSchema],
|
|
},
|
|
},
|
|
{ timestamps: true },
|
|
);
|
|
|
|
module.exports = mongoose.model("Service", serviceSchema);
|