Docker / build (push) Has been cancelled
Добавлены bulk-операции VPS, карточка /vps/:id, CRUD проектов, Command Palette, календарь продлений, webhooks, uptime-проверки, audit log, кастомные поля и адаптеры провайдеров. Co-authored-by: Cursor <[email protected]>
42 lines
1.9 KiB
TypeScript
42 lines
1.9 KiB
TypeScript
import { z } from 'zod'
|
|
|
|
export const vpsSchema = z.object({
|
|
id: z.string().optional(),
|
|
ip: z.string().optional().default(''),
|
|
ipv6: z.string().optional().default(''),
|
|
additionalIps: z.array(z.string()).optional().default([]),
|
|
dns: z.string().optional().default(''),
|
|
providerId: z.string().optional().default(''),
|
|
providerAccountId: z.string().optional().default(''),
|
|
country: z.string().optional().default(''),
|
|
city: z.string().optional().default(''),
|
|
datacenter: z.string().optional().default(''),
|
|
os: z.string().optional().default(''),
|
|
vcpu: z.coerce.number().optional().default(0),
|
|
ramGb: z.coerce.number().optional().default(0),
|
|
diskGb: z.coerce.number().optional().default(0),
|
|
diskType: z.string().optional().default(''),
|
|
virtualization: z.string().optional().default(''),
|
|
bandwidthTb: z.coerce.number().optional().default(0),
|
|
sshPort: z.coerce.number().optional().default(22),
|
|
rootUser: z.string().optional().default(''),
|
|
purpose: z.string().optional().default(''),
|
|
environment: z.string().optional().default(''),
|
|
project: z.string().optional().default(''),
|
|
projectId: z.string().optional().default(''),
|
|
monitoringEnabled: z.coerce.boolean().optional().default(false),
|
|
backupEnabled: z.coerce.boolean().optional().default(false),
|
|
status: z.string().optional().default('active'),
|
|
tariffType: z.string().optional().default(''),
|
|
currency: z.string().optional().default(''),
|
|
dailyRate: z.union([z.coerce.number(), z.literal('')]).optional(),
|
|
monthlyRate: z.union([z.coerce.number(), z.literal('')]).optional(),
|
|
createdAt: z.string().optional(),
|
|
paidUntil: z.string().optional().default(''),
|
|
notes: z.string().optional().default(''),
|
|
userOverrides: z.union([z.array(z.string()), z.literal('clear')]).optional(),
|
|
customData: z.union([z.string(), z.record(z.unknown())]).optional(),
|
|
})
|
|
|
|
export type VpsFormValues = z.infer<typeof vpsSchema>
|