import { z } from 'zod'; export const WireguardOutboundPeerSchema = z.object({ publicKey: z.string().min(1), preSharedKey: z.string().optional(), allowedIPs: z.array(z.string()).default(['0.0.0.0/0', '::/0']), endpoint: z.string().min(1), keepAlive: z.number().int().min(0).optional(), }); export type WireguardOutboundPeer = z.infer; export const WireguardOutboundSettingsSchema = z.object({ mtu: z.number().int().min(1).optional(), secretKey: z.string().min(1), address: z.array(z.string()).default([]), reserved: z.array(z.number().int()).optional(), peers: z.array(WireguardOutboundPeerSchema).min(1), noKernelTun: z.boolean().default(false), }); export type WireguardOutboundSettings = z.infer;