fix(alerts): сохранять параметры выборочно и проверять результат отправки

This commit is contained in:
Denozordec committed 2026-10-03 17:06:44 +07:00
1 parent 0bcac655ea
commit 98319c9d50
11 files changed
+90 -58

No files matched your search

+3 -3
View File
@@ -58,7 +58,7 @@ export const putRulesSchema = z.object({
export const putTelegramSchema = z.object({
token: z.union([z.string(), z.null()]).optional(),
chatId: z.string().optional(),
messageThreadId: z.union([z.number().int().positive(), z.null()]).optional(),
messageThreadId: z.union([z.number().int().positive().max(2147483647), z.null()]).optional(),
})
export const rulePreviewTelegramSchema = z.object({
@@ -72,7 +72,7 @@ export const rulePreviewTelegramSchema = z.object({
export const testTelegramSchema = z.object({
token: z.string().optional(),
chatId: z.string().optional(),
messageThreadId: z.coerce.number().int().positive().optional(),
messageThreadId: z.coerce.number().int().positive().max(2147483647).optional(),
rulePreview: rulePreviewTelegramSchema.optional(),
})
@@ -86,7 +86,7 @@ export type TestTelegramBody = z.infer<typeof testTelegramSchema>
// Public response schemas: configured credentials do not prove Telegram connectivity/delivery.
const alertTimestampSchema = z.string().min(1).refine(value => Number.isFinite(Date.parse(value)), "Некорректное время оповещения")
export const telegramPublicSchema = z.object({
chatId:z.string(),tokenConfigured:z.boolean(),connected:z.boolean(),messageThreadId:z.number().int().positive().nullable(),
chatId:z.string(),tokenConfigured:z.boolean(),connected:z.boolean(),messageThreadId:z.number().int().positive().max(2147483647).nullable(),
}).strict().refine(value => value.connected === (value.tokenConfigured && Boolean(value.chatId.trim())), "Противоречивое состояние параметров Telegram")
export const alertRuleResponseSchema = z.object({
id:z.string().min(1),name:z.string().min(1),type:alertTypeSchema,target:z.string(),targets:z.array(z.string().min(1)),groupId:z.string().nullable(),condition:z.string(),conditions:z.array(z.string().min(1)),severity:alertSeveritySchema,enabled:z.boolean(),cooldown:alertCooldownSchema,