import { z } from "zod";
const allowFromEntry = z.union([z.string(), z.number()]);
const dmSchema = z
.object({
enabled: z.boolean().optional(),
policy: z.enum(["pairing", "allowlist", "open", "disabled"]).optional(),
allowFrom: z.array(allowFromEntry).optional(),
})
.optional();
export const WecomConfigSchema = z.object({
name: z.string().optional(),
enabled: z.boolean().optional(),
webhookPath: z.string().optional(),
token: z.string().optional(),
encodingAESKey: z.string().optional(),
receiveId: z.string().optional(),
streamPlaceholderContent: z.string().optional(),
debounceMs: z.number().optional(),
welcomeText: z.string().optional(),
dm: dmSchema,
defaultAccount: z.string().optional(),
accounts: z.object({}).catchall(z.object({
name: z.string().optional(),
enabled: z.boolean().optional(),
webhookPath: z.string().optional(),
token: z.string().optional(),
encodingAESKey: z.string().optional(),
receiveId: z.string().optional(),
streamPlaceholderContent: z.string().optional(),
debounceMs: z.number().optional(),
welcomeText: z.string().optional(),
dm: dmSchema,
})).optional(),
});