feat(accounts): доработать управление аккаунтами хостеров
Docker / build (push) Has been cancelled

Добавить apiLogin из credentials, сводку и health-индикаторы на /accounts, фильтры, раздельную форму логина и пароля, безопасное удаление с 409 и тесты API/repository.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Denozordec
2026-06-28 16:53:51 +07:00
co-authored by Cursor
parent 06f5b27e53
commit c80090ed08
21 changed files with 844 additions and 84 deletions
@@ -1,15 +1,29 @@
import { z } from 'zod'
export const providerAccountSchema = z.object({
export const billingModeSchema = z.enum(['daily', 'monthly'])
export const providerAccountInputSchema = z.object({
id: z.string().optional(),
providerId: z.string().min(1, 'Provider is required'),
name: z.string().min(1, 'Name is required'),
panelUrl: z.string().optional().default(''),
currency: z.string().optional().default(''),
billingMode: z.string().optional().default(''),
billingMode: billingModeSchema.optional().default('monthly'),
notes: z.string().optional().default(''),
apiCredentials: z.string().optional().default(''),
balanceAlertBelow: z.union([z.number(), z.null()]).optional(),
})
export type ProviderAccount = z.infer<typeof providerAccountSchema>
export const providerAccountPublicSchema = providerAccountInputSchema
.omit({ apiCredentials: true })
.extend({
apiCredentialsSet: z.boolean().optional(),
apiLogin: z.string().optional(),
})
/** @deprecated Используйте providerAccountInputSchema */
export const providerAccountSchema = providerAccountInputSchema
export type ProviderAccountInput = z.infer<typeof providerAccountInputSchema>
export type ProviderAccountPublic = z.infer<typeof providerAccountPublicSchema>
export type ProviderAccount = ProviderAccountInput