import { defineContentConfig, defineCollection, z } from "@nuxt/content"; import { PricingPlanPropsSchema } from "./app/schemas/PricingPlanSchema"; const defineIndexSchema = () => z.object({ capabilities: z.object({ title: z.string(), features: z.array( z.object({ title: z.string(), description: z.string(), icon: z.string(), }) ), }), featuredProjects: z.object({ title: z.string(), projects: z.array( z.object({ title: z.string(), description: z.string(), image: z.string(), demoLink: z.string(), highlight: z.boolean(), spotlight: z.boolean(), }) ), }), techStack: z.object({ title: z.string(), }), whyChooseUs: z.object({ title: z.string(), features: z.array( z.object({ title: z.string(), description: z.string(), icon: z.string(), }) ), }), }); const defineWebDevSchema = () => z.object({ remarks: z.string(), services: z.array( z.object({ id: z.string().min(1), label: z.string().min(1), icon: z.string().optional(), // 比如 "lucide:mouse-pointer-click" // 你原结构里通过 createService 包装,但最终是一个对象 plans: z .array(PricingPlanPropsSchema) .min(1), // 预留扩展字段(例如:category、tags、hidden 等) category: z.string().optional(), tags: z.array(z.string()).optional(), }) ), }); export default defineContentConfig({ collections: { index_en: defineCollection({ type: "page", source: "en-US/index.yml", schema: defineIndexSchema(), }), index_zh: defineCollection({ type: "page", source: "zh-CN/index.yml", schema: defineIndexSchema(), }), webDev_en: defineCollection({ type: "page", source: "en-US/webDev.yml", schema: defineWebDevSchema(), }), webDev_zh: defineCollection({ type: "page", source: "zh-CN/webDev.yml", schema: defineWebDevSchema(), }), }, });