import { z } from "zod"; import { monitorRegionSchema } from "@openstatus/db/src/schema/constants"; export const tcpPayload = z.object({ workspaceId: z.string(), monitorId: z.string(), url: z.string(), cronTimestamp: z.number(), timeout: z.number().prefault(45000), degradedAfter: z.number().nullable(), }); export const TCPResponse = z.object({ type: z.literal("tcp").prefault("tcp"), requestId: z.number().optional(), workspaceId: z.number().optional(), monitorId: z.number().optional(), timestamp: z.number(), timing: z.object({ tcpStart: z.number(), tcpDone: z.number(), }), error: z.string().optional(), region: monitorRegionSchema, latency: z.number().optional(), }); export const TCPResponseTest = TCPResponse.extend({ state: z.literal("success").prefault("success"), }).or( z.object({ type: z.literal("tcp").prefault("tcp"), state: z.literal("error").prefault("error"), }), ); export type tcpPayload = z.infer;