import { z } from 'zod'; const targetPlatformEnum = z.enum(['default', 'intl', 'private']); // 模块标识符(quick_start_guide_id 选项集),code 表由业务方确认 const moduleIdEnum = z.enum([ 'scf', // 云函数 'storage', // 云存储 'any_service', // AnyService 'tcbr', // 云托管 'doc_db', // 文档型数据库 'doc_db_model', // 文档型数据库 (数据模型) 'mysql_db', // MySQL 数据库 'static_hosting', // 静态网站托管 'identity', // 身份认证 'lighthouse', // 轻量应用服务器 ]); const codeItemSchema = z .object({ code: z.string(), title: z.string(), docAddress: z.string(), }) .strict(); const resourceItemSchema = z .object({ link: z.string(), text: z.string(), }) .strict(); const resourceGroupSchema = z .object({ title: z.string(), items: z.array(resourceItemSchema), }) .strict(); const operationItemSchema = z .object({ link: z.string(), text: z.string(), // 模型未声明,真实数据里存在的按钮样式,按 AGENTS.md 补字段不丢数据 type: z.enum(['strong', 'weak']).optional(), }) .strict(); const mainDataSchema = z .object({ title: z.string(), codes: z.array(codeItemSchema).optional(), resources: z.array(resourceGroupSchema), operations: z.array(operationItemSchema), }) .strict(); const row = z .object({ id: moduleIdEnum, lang: z.enum(['zh', 'en']), targetPlatform: z.array(targetPlatformEnum).min(1), desc: z.string(), mainData: mainDataSchema, // —— 旧 cms 平台系统字段,保留以保证使用处兼容性 —— _id: z.string(), _openid: z.string(), _mainDep: z.string(), createdAt: z.string(), updatedAt: z.string(), owner: z.string(), createBy: z.string(), updateBy: z.string(), }) .strict(); export default z.array(row);