import { z } from 'zod'; const port = z.number().int().min(1).max(65535); const nonNegativeInt = z.number().int().min(0); const absolutePath = z.string().regex(/^\//, 'pages.settings.validation.pathLeadingSlash'); export const AllSettingSchema = z.object({ webListen: z.string().optional(), webDomain: z.string().optional(), webPort: port.optional(), webCertFile: z.string().optional(), webKeyFile: z.string().optional(), webBasePath: absolutePath.optional(), sessionMaxAge: z.number().int().min(1).optional(), trustedProxyCIDRs: z.string().optional(), pageSize: z.number().int().min(1).max(1000).optional(), expireDiff: nonNegativeInt.optional(), trafficDiff: nonNegativeInt.optional(), remarkModel: z.string().optional(), datepicker: z.enum(['gregorian', 'jalalian']).optional(), tgBotEnable: z.boolean().optional(), tgBotToken: z.string().optional(), tgBotProxy: z.string().optional(), tgBotAPIServer: z.string().optional(), tgBotChatId: z.string().optional(), tgRunTime: z.string().optional(), tgBotBackup: z.boolean().optional(), tgBotLoginNotify: z.boolean().optional(), tgCpu: z.number().int().min(0).max(100).optional(), tgLang: z.string().optional(), twoFactorEnable: z.boolean().optional(), twoFactorToken: z.string().optional(), xrayTemplateConfig: z.string().optional(), subEnable: z.boolean().optional(), subJsonEnable: z.boolean().optional(), subTitle: z.string().optional(), subSupportUrl: z.string().optional(), subProfileUrl: z.string().optional(), subAnnounce: z.string().optional(), subEnableRouting: z.boolean().optional(), subRoutingRules: z.string().optional(), subListen: z.string().optional(), subPort: port.optional(), subPath: absolutePath.optional(), subJsonPath: absolutePath.optional(), subClashEnable: z.boolean().optional(), subClashPath: absolutePath.optional(), subDomain: z.string().optional(), externalTrafficInformEnable: z.boolean().optional(), externalTrafficInformURI: z.string().optional(), restartXrayOnClientDisable: z.boolean().optional(), subCertFile: z.string().optional(), subKeyFile: z.string().optional(), subUpdates: z.number().int().min(1).max(168).optional(), subEncrypt: z.boolean().optional(), subShowInfo: z.boolean().optional(), subEmailInRemark: z.boolean().optional(), subURI: z.string().optional(), subJsonURI: z.string().optional(), subClashURI: z.string().optional(), subJsonFragment: z.string().optional(), subJsonNoises: z.string().optional(), subJsonMux: z.string().optional(), subJsonRules: z.string().optional(), timeLocation: z.string().optional(), ldapEnable: z.boolean().optional(), ldapHost: z.string().optional(), ldapPort: port.optional(), ldapUseTLS: z.boolean().optional(), ldapBindDN: z.string().optional(), ldapPassword: z.string().optional(), ldapBaseDN: z.string().optional(), ldapUserFilter: z.string().optional(), ldapUserAttr: z.string().optional(), ldapVlessField: z.string().optional(), ldapSyncCron: z.string().optional(), ldapFlagField: z.string().optional(), ldapTruthyValues: z.string().optional(), ldapInvertFlag: z.boolean().optional(), ldapInboundTags: z.string().optional(), ldapAutoCreate: z.boolean().optional(), ldapAutoDelete: z.boolean().optional(), ldapDefaultTotalGB: nonNegativeInt.optional(), ldapDefaultExpiryDays: nonNegativeInt.optional(), ldapDefaultLimitIP: nonNegativeInt.optional(), hasTgBotToken: z.boolean().optional(), hasTwoFactorToken: z.boolean().optional(), hasLdapPassword: z.boolean().optional(), hasApiToken: z.boolean().optional(), hasWarpSecret: z.boolean().optional(), hasNordSecret: z.boolean().optional(), }).loose(); export type AllSettingInput = z.infer;