const ABOUT_US_LENGTH_RULES = [
  { path: "hero.title", label: "Hero title", maxLength: 80 },
  { path: "hero.breadcrumb.*", label: "Hero breadcrumb", maxLength: 80 },
  { path: "hero.backgroundImage", label: "Hero background image", maxLength: 255 },
  { path: "intro.subheading", label: "Intro subheading", maxLength: 80 },
  { path: "intro.heading", label: "Intro heading", maxLength: 120 },
  { path: "intro.description", label: "Intro description", maxLength: 1000 },
  { path: "intro.image", label: "Intro image", maxLength: 255 },
  { path: "mission.subheading", label: "Mission subheading", maxLength: 80 },
  { path: "mission.heading", label: "Mission heading", maxLength: 120 },
  { path: "mission.description", label: "Mission description", maxLength: 1000 },
  { path: "mission.images.main", label: "Mission main image", maxLength: 255 },
  { path: "mission.images.secondary", label: "Mission secondary image", maxLength: 255 },
  { path: "mission.images.bgShape", label: "Mission background shape", maxLength: 255 },
  { path: "mission.images.planeShape", label: "Mission plane shape", maxLength: 255 },
  { path: "mission.images.topShape", label: "Mission top shape", maxLength: 255 },
  { path: "mission.images.globeShape", label: "Mission globe shape", maxLength: 255 },
  { path: "mission.items.*.icon", label: "Mission item icon", maxLength: 255 },
  { path: "mission.items.*.label", label: "Mission item label", maxLength: 80 },
  { path: "mission.items.*.description", label: "Mission item description", maxLength: 240 },
  { path: "mission.features.*", label: "Mission feature", maxLength: 80 },
  { path: "mission.ctaButton.label", label: "Mission CTA label", maxLength: 64 },
  { path: "mission.ctaButton.href", label: "Mission CTA link", maxLength: 255 },
  { path: "features.backgroundImage", label: "Features background image", maxLength: 255 },
  { path: "features.subheading", label: "Features subheading", maxLength: 80 },
  { path: "features.heading", label: "Features heading", maxLength: 120 },
  { path: "features.description", label: "Features description", maxLength: 1000 },
  { path: "features.image", label: "Features image", maxLength: 255 },
  { path: "features.items.*.icon", label: "Feature item icon", maxLength: 255 },
  { path: "features.items.*.title", label: "Feature item title", maxLength: 80 },
  { path: "features.items.*.description", label: "Feature item description", maxLength: 240 },
  { path: "features.ctaButton.label", label: "Features CTA label", maxLength: 64 },
  { path: "features.ctaButton.href", label: "Features CTA link", maxLength: 255 },
  { path: "news.subheading", label: "News subheading", maxLength: 80 },
  { path: "news.heading", label: "News heading", maxLength: 120 },
  { path: "news.ctaButton.label", label: "News CTA label", maxLength: 64 },
  { path: "news.ctaButton.href", label: "News CTA link", maxLength: 255 },
  { path: "news.selectedBlogIds.*", label: "Selected blog ID", maxLength: 64 },
  { path: "news.items.*.title", label: "News item title", maxLength: 120 },
  { path: "news.items.*.category", label: "News item category", maxLength: 48 },
  { path: "news.items.*.date", label: "News item date", maxLength: 32 },
  { path: "news.items.*.author.name", label: "News item author", maxLength: 48 },
  { path: "news.items.*.author.avatar", label: "News item author avatar", maxLength: 255 },
  { path: "news.items.*.link", label: "News item link", maxLength: 255 },
  { path: "news.items.*.thumbnail", label: "News item thumbnail", maxLength: 255 },
];

const PRICING_LENGTH_RULES = [
  { path: "hero.title", label: "Hero title", maxLength: 60 },
  { path: "hero.backgroundImage", label: "Hero background image", maxLength: 255 },
  { path: "hero.shapeImage", label: "Hero shape image", maxLength: 255 },
  { path: "hero.breadcrumb.*.text", label: "Hero breadcrumb text", maxLength: 40 },
  { path: "hero.breadcrumb.*.link", label: "Hero breadcrumb link", maxLength: 255 },
  { path: "pricingSection.subtitle", label: "Pricing section subtitle", maxLength: 64 },
  { path: "pricingSection.heading", label: "Pricing section heading", maxLength: 120 },
  { path: "pricingSection.description", label: "Pricing section description", maxLength: 500 },
  { path: "plans.monthly.*.name", label: "Monthly plan name", maxLength: 64 },
  { path: "plans.monthly.*.price", label: "Monthly plan price", maxLength: 32 },
  { path: "plans.monthly.*.period", label: "Monthly plan period", maxLength: 8 },
  { path: "plans.monthly.*.currency", label: "Monthly plan currency", maxLength: 8 },
  { path: "plans.monthly.*.buttonText", label: "Monthly plan button text", maxLength: 64 },
  { path: "plans.monthly.*.buttonLink", label: "Monthly plan button link", maxLength: 255 },
  { path: "plans.monthly.*.buttonIcon", label: "Monthly plan button icon", maxLength: 64 },
  { path: "plans.monthly.*.features.*", label: "Monthly plan feature", maxLength: 96 },
  { path: "plans.yearly.*.name", label: "Yearly plan name", maxLength: 64 },
  { path: "plans.yearly.*.price", label: "Yearly plan price", maxLength: 32 },
  { path: "plans.yearly.*.period", label: "Yearly plan period", maxLength: 8 },
  { path: "plans.yearly.*.currency", label: "Yearly plan currency", maxLength: 8 },
  { path: "plans.yearly.*.buttonText", label: "Yearly plan button text", maxLength: 64 },
  { path: "plans.yearly.*.buttonLink", label: "Yearly plan button link", maxLength: 255 },
  { path: "plans.yearly.*.buttonIcon", label: "Yearly plan button icon", maxLength: 64 },
  { path: "plans.yearly.*.features.*", label: "Yearly plan feature", maxLength: 96 },
  { path: "testimonials.subtitle", label: "Testimonials subtitle", maxLength: 64 },
  { path: "testimonials.heading", label: "Testimonials heading", maxLength: 120 },
  { path: "testimonials.buttonText", label: "Testimonials button text", maxLength: 64 },
  { path: "testimonials.buttonLink", label: "Testimonials button link", maxLength: 255 },
  { path: "testimonials.buttonIcon", label: "Testimonials button icon", maxLength: 64 },
  { path: "testimonials.image", label: "Testimonials image", maxLength: 255 },
  { path: "testimonials.items.*.name", label: "Testimonial name", maxLength: 64 },
  { path: "testimonials.items.*.role", label: "Testimonial role", maxLength: 64 },
  { path: "testimonials.items.*.content", label: "Testimonial content", maxLength: 400 },
];

const BOOKING_LENGTH_RULES = [
  { path: "hero.title", label: "Hero title", maxLength: 80 },
  { path: "hero.backgroundImage", label: "Hero background image", maxLength: 255 },
  { path: "searchBar.locationLabel", label: "Search bar location label", maxLength: 64 },
  { path: "searchBar.holidaySeasonLabel", label: "Search bar holiday label", maxLength: 64 },
  { path: "searchBar.searchButtonText", label: "Search bar button text", maxLength: 64 },
  { path: "filterPanel.title", label: "Filter panel title", maxLength: 80 },
  { path: "filterPanel.priceTitle", label: "Filter panel price title", maxLength: 64 },
  { path: "filterPanel.priceLabel", label: "Filter panel price label", maxLength: 64 },
  { path: "filterPanel.pricePlaceholder", label: "Filter panel price placeholder", maxLength: 64 },
  { path: "filterPanel.ageTitle", label: "Filter panel age title", maxLength: 64 },
  { path: "filterPanel.ageSelectPlaceholder", label: "Filter panel age placeholder", maxLength: 64 },
  { path: "filterPanel.activitiesTitle", label: "Filter panel activities title", maxLength: 64 },
  { path: "filterPanel.ratingTitle", label: "Filter panel rating title", maxLength: 64 },
  { path: "filterPanel.resetButtonText", label: "Filter panel reset button text", maxLength: 64 },
  { path: "filterPanel.ratingOptions.*.value", label: "Filter rating option value", maxLength: 48 },
  { path: "filterPanel.ratingOptions.*.label", label: "Filter rating option label", maxLength: 64 },
  { path: "programs.*.value", label: "Program value", maxLength: 64 },
  { path: "programs.*.label", label: "Program label", maxLength: 64 },
  { path: "holidays.*.value", label: "Holiday value", maxLength: 64 },
  { path: "holidays.*.label", label: "Holiday label", maxLength: 64 },
  { path: "locations.*.value", label: "Location value", maxLength: 64 },
  { path: "locations.*.label", label: "Location label", maxLength: 64 },
  { path: "camps.*.name", label: "Camp name", maxLength: 120 },
  { path: "camps.*.priceText", label: "Camp price text", maxLength: 32 },
  { path: "camps.*.image", label: "Camp image", maxLength: 255 },
  { path: "camps.*.link", label: "Camp link", maxLength: 255 },
  { path: "camps.*.program", label: "Camp program", maxLength: 80 },
  { path: "configuration.discounts.*.id", label: "Discount ID", maxLength: 64 },
  { path: "configuration.discounts.*.name", label: "Discount name", maxLength: 64 },
  { path: "configuration.discounts.*.description", label: "Discount description", maxLength: 220 },
  { path: "configuration.vouchers.*.validCodes", label: "Voucher code", maxLength: 64 },
  { path: "formSteps.*.title", label: "Booking step title", maxLength: 80 },
  { path: "formSteps.*.sections.*.id", label: "Booking section ID", maxLength: 48 },
  { path: "formSteps.*.sections.*.fields.*.name", label: "Booking field name", maxLength: 32 },
  { path: "formSteps.*.sections.*.fields.*.label", label: "Booking field label", maxLength: 48 },
  { path: "formSteps.*.sections.*.fields.*.placeholder", label: "Booking field placeholder", maxLength: 72 },
  { path: "formSteps.*.sections.*.fields.*.programmeName", label: "Booking field programme name", maxLength: 48 },
];

const ACTIVITY_LENGTH_RULES = [
  { path: "hero.titleActivities", label: "Activity hero title", maxLength: 80 },
  { path: "hero.titleBooking", label: "Booking hero title", maxLength: 80 },
  { path: "hero.bannerImageActivities", label: "Activity hero banner image", maxLength: 255 },
  { path: "hero.bannerImageBooking", label: "Booking hero banner image", maxLength: 255 },
  { path: "name", label: "Activity name", maxLength: 120 },
  { path: "priceText", label: "Activity price text", maxLength: 32 },
  { path: "image", label: "Activity image", maxLength: 255 },
  { path: "link", label: "Activity link", maxLength: 255 },
  { path: "program", label: "Activity program", maxLength: 80 },
  { path: "campDetail.hero.title", label: "Camp detail hero title", maxLength: 120 },
  { path: "campDetail.hero.bgImage", label: "Camp detail hero image", maxLength: 255 },
  { path: "campDetail.basicInfo.location", label: "Camp location", maxLength: 120 },
  { path: "campDetail.basicInfo.ageRange", label: "Camp age range", maxLength: 120 },
  { path: "campDetail.basicInfo.accommodationType", label: "Camp accommodation type", maxLength: 120 },
  { path: "campDetail.basicInfo.careLevel", label: "Camp care level", maxLength: 120 },
  { path: "campDetail.basicInfo.languages", label: "Camp languages", maxLength: 120 },
  { path: "campDetail.sidebar.contact.phone", label: "Camp contact phone", maxLength: 32 },
  { path: "campDetail.sidebar.contact.email", label: "Camp contact email", maxLength: 120 },
  { path: "campDetail.sidebar.menuItems.*.name", label: "Sidebar menu item name", maxLength: 64 },
  { path: "campDetail.sidebar.menuItems.*.href", label: "Sidebar menu item link", maxLength: 255 },
  { path: "campDetail.sidebar.upcomingTours.*.title", label: "Upcoming tour title", maxLength: 120 },
  { path: "campDetail.sidebar.upcomingTours.*.location", label: "Upcoming tour location", maxLength: 80 },
  { path: "campDetail.sidebar.upcomingTours.*.image", label: "Upcoming tour image", maxLength: 255 },
  { path: "campDetail.mainGallery.overlayInfo.location", label: "Gallery overlay location", maxLength: 120 },
  { path: "campDetail.mainGallery.overlayInfo.season", label: "Gallery overlay season", maxLength: 120 },
  { path: "campDetail.mainGallery.overlayInfo.languages", label: "Gallery overlay languages", maxLength: 120 },
  { path: "campDetail.mainGallery.slides.*.url", label: "Gallery slide image", maxLength: 255 },
  { path: "campDetail.mainGallery.slides.*.alt", label: "Gallery slide alt text", maxLength: 120 },
  { path: "campDetail.eventSchedule.startDate", label: "Event schedule start date", maxLength: 32 },
  { path: "campDetail.eventSchedule.duration", label: "Event schedule duration", maxLength: 32 },
  { path: "campDetail.eventSchedule.tickets", label: "Event schedule tickets", maxLength: 32 },
  { path: "campDetail.sections.overview.intro", label: "Overview intro", maxLength: 240 },
  { path: "campDetail.sections.overview.mainText", label: "Overview main text", maxLength: 1000 },
  { path: "campDetail.sections.overview.featureImage", label: "Overview feature image", maxLength: 255 },
  { path: "campDetail.sections.overview.features.*", label: "Overview feature", maxLength: 120 },
  { path: "campDetail.sections.location.title", label: "Location section title", maxLength: 120 },
  { path: "campDetail.sections.location.description", label: "Location section description", maxLength: 1000 },
  { path: "campDetail.sections.accommodation.title", label: "Accommodation section title", maxLength: 120 },
  { path: "campDetail.sections.accommodation.quote", label: "Accommodation quote", maxLength: 120 },
  { path: "campDetail.sections.accommodation.mainHeading", label: "Accommodation main heading", maxLength: 120 },
  { path: "campDetail.sections.accommodation.description", label: "Accommodation description", maxLength: 1000 },
  { path: "campDetail.sections.program.title", label: "Program section title", maxLength: 120 },
  { path: "campDetail.sections.program.heading", label: "Program section heading", maxLength: 120 },
  { path: "campDetail.sections.program.quote", label: "Program quote", maxLength: 120 },
  { path: "campDetail.sections.program.description", label: "Program description", maxLength: 1000 },
  { path: "campDetail.sections.meals.title", label: "Meals section title", maxLength: 120 },
  { path: "campDetail.sections.meals.description", label: "Meals section description", maxLength: 1000 },
  { path: "campDetail.sections.meals.footer", label: "Meals footer text", maxLength: 500 },
  { path: "campDetail.sections.insurance.title", label: "Insurance section title", maxLength: 120 },
  { path: "campDetail.sections.insurance.description", label: "Insurance description", maxLength: 1000 },
  { path: "campDetail.sections.insurance.package.title", label: "Insurance package title", maxLength: 120 },
  { path: "campDetail.sections.insurance.package.desc", label: "Insurance package description", maxLength: 1000 },
  { path: "campDetail.sections.insurance.cancellation.title", label: "Cancellation title", maxLength: 120 },
  { path: "campDetail.sections.insurance.cancellation.desc", label: "Cancellation description", maxLength: 1000 },
  { path: "filters.*.label", label: "Filter label", maxLength: 64 },
  { path: "filters.*.value", label: "Filter value", maxLength: 64 },
  { path: "filters.*.items.*.label", label: "Filter item label", maxLength: 64 },
  { path: "filters.*.items.*.value", label: "Filter item value", maxLength: 64 },
  { path: "bookingSessions.*.sessionId", label: "Session ID", maxLength: 80 },
];

module.exports = {
  ABOUT_US_LENGTH_RULES,
  PRICING_LENGTH_RULES,
  BOOKING_LENGTH_RULES,
  ACTIVITY_LENGTH_RULES,
};
